C 语言中字符查找函数的全面指南132


在 C 语言中,查找字符串中特定字符时,可以使用多种字符查找函数。这些函数是标准 C 库的一部分,可帮助您在字符串中高效地搜索和识别特定字符。

strchr() 函数

strchr() 函数用于在字符串中查找特定字符的首次出现。它接受两个参数:要搜索的字符串和要查找的字符。如果在字符串中找到该字符,strchr() 函数将返回指向该字符的指针。如果没有找到,它将返回空指针 (NULL)。
#include
#include
int main() {
char str[] = "Hello, world!";
char *ptr = strchr(str, 'w');
if (ptr != NULL) {
printf("字符 'w' 在字符串中首次出现的位置为 %d", (int)(ptr - str));
} else {
printf("字符串中没有字符 'w'");
}
return 0;
}

strrchr() 函数

strrchr() 函数与 strchr() 函数类似,但它从字符串的末尾开始搜索。它用于查找字符串中特定字符最后一次出现的位置。它接受与 strchr() 函数相同的参数,并返回指向该字符的指针,如果未找到,则返回空指针 (NULL)。
#include
#include
int main() {
char str[] = "Hello, world!";
char *ptr = strrchr(str, 'l');
if (ptr != NULL) {
printf("字符 'l' 在字符串中最后一次出现的位置为 %d", (int)(ptr - str));
} else {
printf("字符串中没有字符 'l'");
}
return 0;
}

strstr() 函数

strstr() 函数用于在字符串中查找特定子字符串的首次出现。它接受两个参数:要搜索的字符串和要查找的子字符串。如果在字符串中找到子字符串,strstr() 函数将返回指向子字符串的指针。如果没有找到,它将返回空指针 (NULL)。
#include
#include
int main() {
char str[] = "Hello, world!";
char *ptr = strstr(str, "world");
if (ptr != NULL) {
printf("子字符串 'world' 在字符串中首次出现的位置为 %d", (int)(ptr - str));
} else {
printf("字符串中没有子字符串 'world'");
}
return 0;
}

strpbrk() 函数

strpbrk() 函数用于在字符串中查找特定字符集的任何字符的首次出现。它接受两个参数:要搜索的字符串和包含要查找的字符的字符串。如果在字符串中找到任何这些字符,strpbrk() 函数将返回指向该字符的指针。如果没有找到,它将返回空指针 (NULL)。
#include
#include
int main() {
char str[] = "Hello, world!";
char *ptr = strpbrk(str, "aeiou");
if (ptr != NULL) {
printf("字符串中的第一个元音字符为 '%c'", *ptr);
} else {
printf("字符串中没有元音字符");
}
return 0;
}

strcspn() 函数

strcspn() 函数用于计算字符串中不包含在特定字符集中的字符的长度。它接受两个参数:要搜索的字符串和包含要忽略的字符的字符串。该函数返回从字符串开头到第一个出现要忽略的字符为止的字符数。
#include
#include
int main() {
char str[] = "Hello, world!";
int len = strcspn(str, "aeiou");
printf("不包含元音字符的字符串的长度为 %d", len);
return 0;
}

strlen() 函数

strlen() 函数用于计算字符串的长度,即字符串中字符的数量。它接受一个参数:要计算长度的字符串。该函数返回字符串中的字符数量(不包括终止空字符)。
#include
#include
int main() {
char str[] = "Hello, world!";
int len = strlen(str);
printf("字符串 '%s' 的长度为 %d", str, len);
return 0;
}

strcmp() 函数

strcmp() 函数用于比较两个字符串并返回它们之间的比较结果。它接受两个参数:要比较的两个字符串。该函数返回一个整数,表示以下三种情况之一:
* 0:如果两个字符串相等
* 正数:如果第一个字符串大于第二个字符串
* 负数:如果第一个字符串小于第二个字符串

#include
#include
int main() {
char str1[] = "Hello";
char str2[] = "World";
int result = strcmp(str1, str2);
if (result == 0) {
printf("字符串 '%s' 和 '%s' 相等", str1, str2);
} else if (result > 0) {
printf("字符串 '%s' 大于字符串 '%s'", str1, str2);
} else {
printf("字符串 '%s' 小于字符串 '%s'", str1, str2);
}
return 0;
}

strtok() 函数

strtok() 函数用于将字符串分割为一组以分隔符分隔的子字符串。它接受两个参数:要分割的字符串和分隔符字符串。该函数返回指向字符串中第一个分隔符之前的字符的指针。如果字符串中没有分隔符,则该函数将返回 NULL。
#include
#include
int main() {
char str[] = "Hello, world!";
char *token;
token = strtok(str, " ");
while (token != NULL) {
printf("子字符串:'%s'", token);
token = strtok(NULL, " ");
}
return 0;
}

注意事项* 字符查找函数对大小写敏感。例如,strchr("hello", 'H') 将返回 NULL,因为字符串中没有大写 H 字符。
* 字符串的终止空字符 ('\0') 不被字符查找函数考虑在内。
* 在使用字符串函数之前,请确保字符串已正确终止。
* 在对字符串执行任何操作之前,请确保字符串指针指向有效的内存。

2024-11-14


上一篇:C语言中的数组逆序输出(附带代码示例)

下一篇:c语言输出保留全部小数