0


C语言——字符函数和字符串函数(二)

📝前言:
上一篇文章C语言——字符函数和字符串函数(一)对**字符函数和字符串函数

strlen

strcpy

strncpy

strcat

strncat

进行了初步的讲解
这篇文章主要再讲解几个我们
常用到的其他字符串函数**(附上实例):
1,strcmp和strncmp
2,strstr

🎬个人简介:努力学习ing
📋个人专栏:C语言入门基础
🎀CSDN主页 愚润求学
🌄每日鸡汤:夜色难免黑凉,前行必有曙光


文章目录

一,strcmp和strncmp

头文件:<string.h>
功能:逐个比较字符串中的字符

1,strcmp

我们先看一下对

strcmp

的介绍👇🏻
在这里插入图片描述
⭐对重要的内容解读一下与数理:
●功能(执行过程):
1,从每个字符串的第一个字符开始依次进行字符的对应比较
2,如果字符相等,则进行下一个字符的比较
●返回值:
1,两个字符串的内容完全相同时,返回0
2,当出现对应字符不相等时:
str1中的字符(ASCII值)> str2中的字符返回>0的数字
str1中的字符(ASCII值)> str2中的字符返回<0的数字

下面请看使用的例子👇🏻

#include<stdio.h>#include<string.h>intmain(){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));return0;}

**我们让

arr1

分别与

arr2

arr3

arr4

进行比较**
依据我们上面的学习,我们可以做出一下判断:
1,

arr1

arr2

完全相同,所以应该返回

0

2,

arr1

arr3

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

>0

的数字
3,

arr1

arr4

相比,前2个字符ab相同,但是,第三个字符‘c’<‘d’,所以返回一个

<0

的数字

来看输出结果🔍
这里是引用
和我们预料的一样

2,strncmp

在这里插入图片描述
可以观察到参数多了一个

size_t num

,这个表示的是比较的字符的个数
对两个字符串的前num个字符进行比较,比较的规则如同strcmp
我们借助strcmp中的例子,来使用一下strncmp,比较字符串的前三个字符👇🏻

#include<stdio.h>#include<string.h>intmain(){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));return0;}

输出结果🔍
在这里插入图片描述

arr1

arr3

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

0

二,strstr

**strstr的功能是:在字符串

str1

中找字符串

str2

**
👇🏻
在这里插入图片描述
⭐对重要的内容解读一下与数理:
●功能(执行过程):
1,在

str1

中找

str2

2,若找到了,则返回

str2

str1

中第一次出现的位置(地址)
3,若没找到,则返回空指针
●注意:
1,字符串的比较匹配不包含

\0

,以

\0

为结束标志(也就是说在

str1

中遇到

\0

就会停止查找)

请看使用实例👇🏻

#include<stdio.h>#include<string.h>intmain(){char str1[]="abcdabcd";char str2[]="abc\0dabcd";char str[]="bcd";//在str1里面找strif(strstr(str1, str)==NULL)printf("没找到\n");elseprintf("%s\n",strstr(str1, str));//在str2里面找strif(strstr(str2, str)==NULL)printf("没找到\n");elseprintf("%s\n",strstr(str2, str));return0;}

输出结果🔍
在这里插入图片描述
可见,在

str1

中找到了,并且返回了第一次找到时的地址,所以才从第一个

b

的位置开始打印

str2

中最后也有

bcd

,但是因为在前面遇到了

\0

所以停止了查找,且在停止前未找到,所以返回

NULL

🌈我的分享也就到此结束啦🌈
要是我的分享也能对你的学习起到帮助,那简直是太酷啦!
若有不足,还请大家多多指正,我们一起学习交流!
📢公主,王子:点赞👍→收藏⭐→关注🔍
感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!


本文转载自: https://blog.csdn.net/tan_run/article/details/134963862
版权归原作者 愚润求学 所有, 如有侵权,请联系我们删除。

“C语言——字符函数和字符串函数(二)”的评论:

还没有评论