【C语言】正确比较两个字符串-创新互联
目录
创新互联建站服务紧随时代发展步伐,进行技术革新和技术进步,经过十年的发展和积累,已经汇集了一批资深网站策划师、设计师、专业的网站实施团队以及高素质售后服务人员,并且完全形成了一套成熟的业务流程,能够完全依照客户要求对网站进行成都网站设计、成都网站建设、建设、维护、更新和改版,实现客户网站对外宣传展示的首要目的,并为客户企业品牌互联网化提供全面的解决方案。两种常见的错误比较方法
(1)为什么两个字符串不能直接用大于小于号比较?
(2)为什么不能用数组名直接比较
字符串比较大小的实质
两种比较字符串两种方法
(1)难的方法
(2)简单的方法
两种常见的错误比较方法
你还在用‘>’‘<’‘=’等比较字符串吗?
事实上,用大于小于比较字符串的方法是不对的。我们看一下两种常见的错误方法
#includeint main()
{
char arr1[] = "abcdef";
char arr2[] = "abc";
if (arr1< arr2)
{
}
if ("abcdef"< "abc")
{
}
}
(1)为什么两个字符串不能直接用大于小于号比较?因为用大于小于号,比较的是字符串的首地址大小,而不是字符串的大小。如上述例子,比较的是"abcdef"中a的地址和"abc"中a的地址。
(2)为什么不能用数组名直接比较因为数组名代表首元素地址(一般情况下),用数组名比较跟用字符串直接比较性质是一样的,所以用数组名比较也是不对的。当我们把字符串"abcd"赋值给指针p,大家感觉p中存的是什么?是"abcd"吗?不是,是'a'的地址
char* p = "abcd";
字符串比较大小的实质比较字符串的大小就是比较每个字符串中对应位置上的字符大小(ASC II码值大小),如果相同,就比较下一对,直到不同或者都遇到'\0'。
两种比较字符串两种方法 (1)难的方法#include#includeint main()
{
char arr1[] = "abcdef";
char arr2[] = "abc";
int i = 0;
int n1 = strlen(arr1);
int n2 = strlen(arr2);
while (n1 && n2)
{
if (arr1[i]< arr2[i])
{
printf("arr1 arr2[i])
{
printf("arr1>arr2\n");
break;
}
n1--;
n2--;
i++;
}
if ((n1==0) &&(n2 == 0))
{
printf("arr1=arr2\n");
}
else if (n1 == 0) {
printf("arr1arr2");
}
return 0;
}
(2)简单的方法在C语言中有个库函数能实现两个字符串的比较,它就是strcmp()函数
int strcmp( const char *string1, const char *string2);
当string1大于string2时返回一个大于0的数,等于返回0,小于返回小于0的数
(strcpy函数详情请参考:strcmp函数)
#include#includeint main()
{
char arr1[] = "abcdef";
char arr2[] = "abc";
int ret=strcmp(arr1, arr2);
if (ret >0)
{
printf("arr1>arr2");
}
else if (ret< 0)
{
printf("arr1
以上就是字符串比较大小的讲解,有错误的地方希望大家能批评指正,别忘了点赞👍+收藏⭐️哦
😜 关注我!带来等多精彩🎉🎉
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
新闻标题:【C语言】正确比较两个字符串-创新互联
路径分享:http://myzitong.com/article/iphch.html