C语言学习笔记---字符查找函数strchr()和strrchr()函数

787 阅读3分钟

「这是我参与11月更文挑战的第12天,活动详情查看:2021最后一次更文挑战」。

strchr()函数

  在C语言中如果要查找某个字符串中是否包含某个字符,可以使用strchr()函数。 它的函数原型是:

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

  它有两个参数,第一个参数是要查找的字符串,第二个参数是在字符串中待查找的字符。它的返回值是一个指针,这个指针的值就是找到字符第一次在字符串中出现的位置,如果在字符串中没有找到相应的字符,则返回一个NULL。

它的使用方法如下:

int main(int argc, char *argv[])
{
	char str1[]="abcdefgabcdef";
	char *str2;
	
	puts(str1);
	
	str2 = strchr(str1,'e');
	if(str2 == NULL)
		puts("not find");
		
	puts(str2);	

	system("pause");
	return 0;
}

  首先定义一个字符串,然后使用strchr()函数查找字符 e 是否在字符串1中包含。strchr()函数有两个参数,第一个参数是要待查找的字符串,第二个参数是需要查找的字符。如果字符串中包含所查找的字符,则返回第一次字符出现的位置,如果字符串中不包含查找的字符,则返回空指针。

在这里插入图片描述

  字符串1中包含了两个字符e,但是返回的位置是第一次e出现的位置。

在这里插入图片描述

  如果查找的字符在字符串中不包含,则返回一个空指针。

strrchr()函数

  如果strrchr()函数和strchr()函数的功能一样,都是查找字符串中是否包含某个字符,但是它返回的是字符串中最后一次包含字符的位置。函数原型为:

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

  它有两个参数,第一个参数是要查找的字符串,第二个参数是在字符串中待查找的字符。它的返回值是一个指针,这个指针的值就是找到字符最后一次在字符串中出现的位置,如果在字符串中没有找到相应的字符,则返回一个NULL。

int main(int argc, char *argv[])
{
	char str1[]="abcdefgabcdef";
	char *str2;
	
	puts(str1);
	
	str2 = strrchr(str1,'e');
	if(str2 == NULL)
		puts("not find");
		
	puts(str2);	

	system("pause");
	return 0;
}

  将上面例子中strchr()函数改为strrchr(),打印结果如下:

在这里插入图片描述

  字符串1中包含了两个字符e,但是它返回的是最后一次e出现的位置。

在这里插入图片描述

  同样如果字符串中不包含查找的字符,则返回一个空指针。

  通过上面两个例子可以看出,strchr()函数和strrchr()函数都是用来查找一个字符串中是否包含特定的字符,唯一的区别就是strchr()函数返回的是字符在字符串中第一次出现的位置,strrchr()函数返回的是字符在字符串中最后一个出现的位置。