学科分类
目录
C语言

字符串查找函数

生活中,我们经常会查找文档,例如从花名册中查找某个人,从报表中查找某个季度的数据,在C语言中,也经常要编程实现文本查找功能,为此,C语言提供了strchr()、strrchr()和strstr()三个函数来实现对字符串的查找功能,接下来针对这3个函数进行详细地讲解。

1、strchr()函数

strchr()函数用来查找指定字符在指定字符串中第1次出现的位置,函数声明如下:

char *strchr(const char *str, char c);

在上述函数声明中,参数str为被查找的字符串,c是指定的字符。如果字符串str中包含字符c,strchr()函数将返回一个字符指针,该指针指向字符c第1次出现的位置,否则返回空指针。

strchr()函数的用法示例如下:

char *p = "abcdef";
char *idx1 = strchr(p, 'e');
char *idx2 = strchr(p, 't');

上述代码中,在字符“abcdef”中分别查找字符‘e’与字符第一次出现的位置,idx1的值即为字符‘e’的位置,而字符串中没有字符‘t’,查找不到,因此idx2的值为空。

2、strrchr()函数

strrchr()函数用来查找指定字符在指定的字符串中最后1次出现的位置,函数声明如下:

char *strrchr(const char *str, char c);

在上述函数声明中,参数str为被查找的字符串,c是指定的字符。如果字符串str中包含字符c,strchr()函数将返回一个字符指针,该指针指向字符c最后一次出现的位置,否则返回空指针。

由于strrchr()函数的用法与strchr()函数非常相似,这里不再举例说明。

3、strstr()函数

上面两个函数都只能搜索字符串中的单个字符,如果要想判断在字符串中是否包含指定字符串时,可以使用strstr()函数,函数声明如下:

char *strstr(const char *haystack, const char *needle);

在上述函数声明中,参数haystack是被查找的字符串,needle是子字符串。如果在字符串haystack中找到了字符串needle,则返回子字符串的指针,否则返回空指针。

strstr()函数的用法示例如下所示:

char *p = "abcdef";
char *idx1 = strstr(p, "abc");
char *idx2 = strstr(p, "nihao");

上述代码先定义了一个指针p指向字符串“abcdef”,然后分别在字符串中查找子串“abc”和子串“nihao”,并将查找结果返回给char变量idx1与idx2。当查找“abc”子串时,“abc”子串的位置在字符串的开头,因此idx1的位置为字符串的位置,idx1的值为“abcdef”。当查找子串“nihao”时,字符串中没有包含该子串,因此查找不成功,idx2的值为空。

点击此处
隐藏目录