1. 简介
C语言中strchr函数是一个非常常用的字符串处理函数,主要用于从一个字符串中查找指定的字符或子串,并返回它的首次出现位置的指针。在C底层开发中,使用strchr函数可以方便地对字符串进行操作,例如查找字符串中的某个字符或者判断两个字符串中是否存在某个字符。
2. 函数原型
函数原型如下:
char *strchr(char *str, int chr);
函数接受两个参数,第一个是要被查找的字符串,第二个是要查找的字符或子串。
3. 返回值
函数返回一个指针,该指针指向字符串中第一个匹配成功的字符或子串,如果未找到匹配的字符或子串,则返回NULL。
4. 用例
4.1 查找指定字符
我们可以使用strchr函数来查找字符串中的某个字符是否存在,例如下面的例子查找字符 'o' 是否存在于字符串 str 中:
#include <stdio.h>
#include <string.h>
int main ()
{
char str[] = "hello world";
char *p;
p = strchr(str, 'o');
if (p != NULL)
printf ("字符 o 在字符串 str 中的位置是:%ld", p - str + 1);
else
printf ("没有找到字符 o");
return 0;
}
上面的代码将输出:
字符 o 在字符串 str 中的位置是:5
我们可以看到,在字符串 "hello world" 中,字符 'o' 第一次出现的位置是第五个字符。
4.2 查找指定子串
strchr函数可以用来查找一个字符串中是否包含某个子串,例如下面的例子查找子串 "world" 是否存在于字符串 str 中:
#include <stdio.h>
#include <string.h>
int main ()
{
char str[] = "hello world";
char *p;
p = strchr(str, 'w');
if (p != NULL) {
if (strncmp(p, "world", 5) == 0)
printf ("字符串 str 中包含子串 world");
else
printf ("字符串 str 中不包含子串 world");
}
else
printf ("没有找到子串 world");
return 0;
}
上面的代码将输出:
字符串 str 中包含子串 world
我们可以看到,在字符串 "hello world" 中,子串 "world" 第一次出现的位置是第六个字符,而且经过比较发现确实和指定的子串相同。
4.3 注意事项
在使用strchr函数时需要注意以下几点:
如果查找的字符或者字符串在被查找的字符串中不存在,则返回NULL。
如果被查找的字符串为空字符串,则返回NULL。
strchr函数查找的是字符或者字节,如果查找中文或者其他多字节字符串,则需要使用其他的函数。
strchr函数定义在string.h头文件中,所以在使用该函数时需要添加该头文件。
5. 总结
strchr函数是C语言中非常常用的字符串处理函数之一,可以方便地对字符串进行操作,例如查找字符串中的某个字符或者判断两个字符串中是否存在某个字符等。在使用该函数时需要注意函数的参数和返回值,以及一些其他注意事项,使用起来非常方便,比较容易掌握。