“21天好习惯” 第一期 - 18

“21天好习惯” 第一期 - 18,第1张

“21天好习惯” 第一期 - 18

今天进一步探究昨天学习的strcmp()函数

        昨天学习strcmp()函数时提到了,当两个字符串相同时,输出0,不相同时,输出非零,那么当两个字符串不同时,具体会输出什么非零值呢?于是写了一个程序进行探究:

#include
#include
int main()
{
	printf("strcmp("A","B") = ");
	printf("%dn", strcmp("A", "B"));
	printf("strcmp("B","A") = ");
	printf("%dn", strcmp("B", "A"));
	printf("strcmp("a","b") = ");
	printf("%dn", strcmp("a", "b"));
	return 0;
}

        从程序,以及运行结果可以看出,对于A,B和a,b的比较结果都是输出-1,而B,A输出的是1,结合书中内容可以得出结论:当在字母表中第一个字符串位于第二个字符串的前面,则返回负数,反之则返回正数。

        在程序运行的某些情况中,使用strcmp()函数对比字符串时,可能并不需要对比整个字符串,也许只需要比较头几个字符是否相同,这时为了提高程序运行效率,同时完成任务,我们可以使用C语言提供的strncmp()函数,其中加入第三个参数,能够限定函数对比的字符数。

#include
#include
int main()
{
	char qq[] = "TenXun hello ";
	char Vchat[] = "TenXun gone";
	if (strncmp(qq, Vchat, 6) == 0) {
		printf("Yes,they are the same!");
	}
	else
		printf("Wrong!wrong!wrong!");
	return 0;
}

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5502203.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存