【例6-22】字符串比较函数strcmp()

发布时间:2024-06-21 12:01

在使用字符串处理函数前,需要在程序开头使用编译预处理命令 #include
(六)字符串比较函数 strcmp()
函数调用格式strcmp(str1,str2);
函数功能:按字典序比较字符串 str1 和 str2 的大小。
比较规则:将两个字符串自左向右逐个字符进行ASCLL码大小比较,直到出现不同字符或遇'\0'停止;
          若全部字符相同,返回 0 值;
          若出现第一对不同字符,计算其ASCII之差;
          ASCII之差为正整数,则 str1 > str2 ,返回值为1;
          ASCII之差为负整数,则 str1 < str2 ,返回值为-1;
注意:字符串 str1 和 str2 的比较不能用条件表达式 str1 > str2 之类的表示

//strcmp()函数演示

#include
#include
int main()
{
	char str_1[2][20] = { "China","China" };		//全部字符相同
	char str_2[2][20] = { "China n","China b" };	//第一对不同字符'n'、'b',即'\110'、'\98'
	char str_3[2][20] = { "China N","China b" };	//第一对不同字符'N'、'b',即'\78'、'\98'
	int result_1, result_2, result_3;

	//比较二维数组str中的两个字符串,并把其返回值赋值给result。
	result_1 = strcmp(str_1[0], str_1[1]);
	printf("%d\n", result_1);				//返回值为0

	result_2 = strcmp(str_2[0], str_2[1]);
	printf("%d\n", result_2);				//返回值为1

	result_3 = strcmp(str_3[0], str_3[1]);
	printf("%d\n", result_3);				//返回值为-1

	return 0;
}

【例6-22】字符串比较函数strcmp()_第1张图片

//突发奇想,用这个strcmp()函数比较中文字符

#include
#include
int main()
{
	char str_1[2][20] = { "我爱中国","我爱中国" };	//全部字符相同
	char str_2[2][20] = { "中","国" };				//不同中文字符'中'、'国',即'D6D0'、'B9FA'
	char str_3[2][20] = { "统","一" };				//不同中文字符'统'、'一',即'CDB3'、'D2BB'
	int result_1, result_2, result_3;

	//比较二维数组str中的两个字符串,并把其返回值赋值给result。
	result_1 = strcmp(str_1[0], str_1[1]);
	printf("%d\n", result_1);				//两字符串相同,返回值为0

	result_2 = strcmp(str_2[0], str_2[1]);
	printf("%d\n", result_2);				//'D6D0' > 'B9FA',返回值为1

	result_3 = strcmp(str_3[0], str_3[1]);
	printf("%d\n", result_3);				//'CDB3' < 'D2BB',返回值为-1

	return 0;
}

【例6-22】字符串比较函数strcmp()_第2张图片 

 中文字符集GB18030编码方案于2000年发布第一版,收录汉字27533个;
2005年发布第二版,收录汉字70000余个,以及多种少数民族文字。
GB18030采用单字节、双字节、四字节分段编码。
汉字GB国际编码查询:https://www.qqxiuzi.cn/bianma/guobiaoma.php

ps:中文字符的比较方法和英文差不多,都是自左向右逐个比较,直到遇到第一对不同字符,
比较其GB编码的大小。

经过一些粗略的查阅资料,GB编码是由汉字字符的区位码转化为十六进制得来的
一些相关链接:https://www.cnblogs.com/leesf456/p/5317574.html
                         https://zhuanlan.zhihu.com/p/46216008
                         https://cloud.tencent.com/developer/article/1343240

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号