C语言学习笔记---字符串比较函数strcmp() 和 strcnmp()函数

本文介绍了C语言中用于比较字符串的strcmp()和strncmp()函数。strcmp()函数用于判断两个字符串是否相等,返回值表明字符串的相对大小。strncmp()函数则增加了第三个参数,允许指定比较的字符数,从而在部分匹配场景下更灵活。通过示例代码展示了这两个函数的使用方法和比较结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文章已经生成可运行项目,

strcmp() 函数

  在c语言中比较两个字符串内容是否相等,通常使用strcmp()函数来比较。它的使用方法很简单,两个参数就是要比较的字符串。

int main(int argc, char *argv[])
{
	char *str1="abc";
	char *str2="123";
	int ret = 0;
	ret = strcmp(str1,str2);
	printf("%d\r\n",ret);
 	system("pause");
	return 0;
}

这里比较两个字符串str1和str2,输出结果如下:
在这里插入图片描述
  输出结果为1,说明两个字符串不相等。输出结果为0,说明两个字符串相等。同样通过输出结果值的大小也可以看出是哪个字符串大。

  修改代码如下:

int main(int argc, char *argv[])
{
	int ret = 0;
	
	ret = strcmp("b","b");	
	printf("b,b %d\r\n",ret);
	
	ret = strcmp("b","a");	
	printf("b,a %d\r\n",ret);
	
	ret = strcmp("b","c");	
	printf("b,c %d\r\n",ret);
 
	system("pause");
	return 0;
}

  分别比较 字母b和b、b和a、b和c 的大小,输出结果如下:
在这里插入图片描述
  通过结果可以看到 b和b 比较的结果为 0,说明这两个相等。b 和 a 比较结果为1,说明 b 比 a 大,b 和 c的比较的结果为 -1,说明b 比 c 小。这里比较的依据是按照字母ASCII的值的大小进行比较的。 在这里插入图片描述
  在ASCII码表中a的值是97,b的值是98,c的值是99。所以这三个字母中a的值最小,c的值最大。
  在这里要注意一点,strcmp()函数比较的是字符串,所以在传递参数的时候虽然只是一个字符,但是也要用 双引号 “” 引起来。不能用单引号’'引起来。

  下面这种用法是错误的。

	ret = strcmp('b','b');	
	printf("b,b %d\r\n",ret);

  单个字符的本质其实是整数类型,所以在比较字符的时候,就可以直接使用关系运算符来进行比较。

if('b' == 'b')
 		printf("equal \r\n";

strcnmp()函数

  strcmp()函数比较字符串的时候是比较的全部字符,但是有时候在比较字符串的时候并不需要全部比较完,比如想查找以某几个字符开头的单词,这时候只需要比较前几个字母就行了。那么此时使用strcmp()函数进行比较的时候就会比较麻烦。这时就可以使用strncmp()函数来进行比较,strncmp()函数相比strcmp()函数增加了第三个参数,用来设置需要比较的字符个数。

  修改上面的代码如下:

int main(int argc, char *argv[])
{
	char *str1 = "abcdef";
	char *str2 = "abc123";
	int ret = 0;
	
	ret = strncmp(str1,str2,3);	
	printf("%d\r\n",ret);
	
	system("pause");
	return 0;
}

  字符串1和字符串2不相等,但是前3个字符是相等的,这里使用strncmp()函数只比较这两个字符串前三个字符。
在这里插入图片描述
  打印结果为0,说明前三个字符是相等的。将比较字符数改为4看看结果。
在这里插入图片描述
  结果不相等,说明这两个字符串的前4个字符不相等。

  这样通过第三个参数的值,就可以控制比较字符串的个数,使用起来也更加灵活了。

本文章已经生成可运行项目
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值