相关推荐recommended
C语言——字符函数和字符串函数(二)
作者:mmseoamin日期:2023-12-18

📝前言:

上一篇文章C语言——字符函数和字符串函数(一)对字符函数和字符串函数strlen,strcpy和strncpy,strcat和strncat进行了初步的讲解

这篇文章主要再讲解几个我们常用到的其他字符串函数(附上实例):

1,strcmp和strncmp

2,strstr

🎬个人简介:努力学习ing

📋个人专栏:C语言入门基础

🎀CSDN主页 愚润求学

🌄每日鸡汤:夜色难免黑凉,前行必有曙光


文章目录

  • 一,strcmp和strncmp
    • 1,strcmp
    • 2,strncmp
    • 二,strstr

      一,strcmp和strncmp

      头文件:

      功能:逐个比较字符串中的字符

      1,strcmp

      我们先看一下对strcmp的介绍👇🏻

      C语言——字符函数和字符串函数(二),在这里插入图片描述,第1张

      ⭐对重要的内容解读一下与数理:

      ●功能(执行过程):

      1,从每个字符串的第一个字符开始依次进行字符的对应比较

      2,如果字符相等,则进行下一个字符的比较

      ●返回值:

      1,两个字符串的内容完全相同时,返回0

      2,当出现对应字符不相等时:

      若str1中的字符(ASCII值)> str2中的字符,返回>0的数字

      若str1中的字符(ASCII值)> str2中的字符,返回<0的数字

      下面请看使用的例子👇🏻

      #include
      #include
      int main()
      {
      	char arr1[] = "abcd";
      	char arr2[] = "abcd";
      	char arr3[] = "abc";
      	char arr4[] = "abd";
      	printf("%d\n", strcmp(arr1, arr2));
      	printf("%d\n", strcmp(arr1, arr3));
      	printf("%d\n", strcmp(arr1, arr4));
      	return 0;
      }
      

      我们让arr1 分别与 arr2,arr3,arr4进行比较

      依据我们上面的学习,我们可以做出一下判断:

      1,arr1和arr2完全相同,所以应该返回0

      2,arr1和arr3相比,前3个字符相同,第四个字符‘d’>‘\0’,所以应该返回一个>0的数字

      3,arr1和arr4相比,前2个字符ab相同,但是,第三个字符‘c’<‘d’,所以返回一个<0的数字

      来看输出结果🔍

      C语言——字符函数和字符串函数(二),这里是引用,第2张

      和我们预料的一样

      2,strncmp

      C语言——字符函数和字符串函数(二),在这里插入图片描述,第3张

      可以观察到参数多了一个size_t num,这个表示的是比较的字符的个数

      对两个字符串的前num个字符进行比较,比较的规则如同strcmp

      我们借助strcmp中的例子,来使用一下strncmp,比较字符串的前三个字符👇🏻

      #include
      #include
      int main()
      {
      	char arr1[] = "abcd";
      	char arr2[] = "abcd";
      	char arr3[] = "abc";
      	char arr4[] = "abd";
      	printf("%d\n", strncmp(arr1, arr2,3));
      	printf("%d\n", strncmp(arr1, arr3,3));
      	printf("%d\n", strncmp(arr1, arr4,3));
      	return 0;
      }
      

      输出结果🔍

      C语言——字符函数和字符串函数(二),在这里插入图片描述,第4张

      arr1与arr3比较,因为只比较前三个字符,所以不进行第四个字符的比较,前三个字符完全相同,则返回0

      二,strstr

      strstr的功能是:在字符串str1中找字符串str2

      👇🏻

      C语言——字符函数和字符串函数(二),在这里插入图片描述,第5张

      ⭐对重要的内容解读一下与数理:

      ●功能(执行过程):

      1,在str1中找str2

      2,若找到了,则返回str2在str1中第一次出现的位置(地址)

      3,若没找到,则返回空指针

      ●注意:

      1,字符串的比较匹配不包含\0,以\0为结束标志(也就是说在str1中遇到\0就会停止查找)

      请看使用实例👇🏻

      #include
      #include
      int main()
      {
      	char str1[] = "abcdabcd";
      	char str2[] = "abc\0dabcd";
      	char str[] = "bcd";
      	//在str1里面找str
      	if (strstr(str1, str) == NULL)
      		printf("没找到\n");
      	else
      		printf("%s\n", strstr(str1, str));
      	//在str2里面找str
      	if (strstr(str2, str) == NULL)
      		printf("没找到\n");
      	else
      		printf("%s\n", strstr(str2, str));
      	return 0;
      }
      

      输出结果🔍

      C语言——字符函数和字符串函数(二),在这里插入图片描述,第6张

      可见,在str1中找到了,并且返回了第一次找到时的地址,所以才从第一个b的位置开始打印

      在str2中最后也有bcd,但是因为在前面遇到了\0所以停止了查找,且在停止前未找到,所以返回NULL


      🌈我的分享也就到此结束啦🌈

      要是我的分享也能对你的学习起到帮助,那简直是太酷啦!

      若有不足,还请大家多多指正,我们一起学习交流!

      📢公主,王子:点赞👍→收藏⭐→关注🔍

      感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!