C语言问题:不用strcmp函数比较两个字符串的大小

#include<stdio.h>
int main()
{
int i=0;
char a[100],b[100];
gets(a);gets(b);
while(a[i] == b[i]&&a[i]!='\0')i++;
if (a[i] == '\0'&&b[i]=='\0')
printf("The 2 strings are the same. a =b\n");
else {
if(a[i] > b[i])
printf("The 2 strings are different. a > b\n");
else
printf("The 2 strings are different. a < b\n");
}
}我想知道while(a[i] == b[i]&&a[i]!='\0')i++;
这句中的]&&a[i]!='\0'是什么有什么作用?
要是a[100]比b[100]小,也就是a[100]先到'\0'那怎么比较呢!难道那'\0'和'字母去比较',要是可以比较的话'\0'的anscll又是多少呢!

第1个回答  推荐于2017-12-16
strcmp函数是用来比较字符串的,而字符串以'\0'作为结尾标志,故要加上&&a[i]!='\0'。本回答被提问者采纳
第2个回答  2011-03-08
这句中的]&&a[i]!='\0'是什么有什么作用?
防止两个字符串都是null

要是a[100]比b[100]小,也就是a[100]先到'\0'那怎么比较呢!
'\0'就是0
第3个回答  2011-03-08
'\0'是字符串的结尾, a[i]!='\0'判断 有没有到结尾。 '\0'也是可以与字母比较的,它是anscii是 0
第4个回答  2011-03-08
a[i] == b[i]&&a[i]!='\0' 此句的前半部分如果成立才去比较后半部分,此时不存在'\0'和'字母的比较。

C语言问题:不用strcmp函数比较两个字符串的大小
strcmp函数是用来比较字符串的,而字符串以'\\0'作为结尾标志,故要加上&&a[i]!='\\0'。

C语言问题:不用strcmp函数比较两个字符串的大小
char c[N]={"abcdefg"},d[N]={"abcdefg"};char e[N]={"abcdefg"},f[N]={"abcdeeg"};cmp(a,b);cmp(c,d);cmp(e,f);return 0;} 运行效果:

用c语言编写程序,不使用strcmp函数,比较任意两个字符串的大小
\/\/如果长度不相同或发现不相等字符,则表示字符串不相等 return my_strcmp(++a,++b);\/\/判断下一个字符 }

C语言 不用strcmp() 实现字符串比较
判断字符串str1是不是已经结束了,这里判断不严密,str1与str2都应判断是否已经结束。while( (str1[i]!='\\0')&&(str2[i]!='\\0'))if (str1[i]!=str2[i])break;else i++; \/\/继续判断下一个字符

C语言 不用strcmp() 实现字符串比较
这句话才是遍历字符串啊。如果没有这句,只用k=str1[i]-str2[i]; 判断的话,只能判断第一个字符(如"a"和"ab"就会判定为相等了)。while(str1[i]) \/\/ 这句话是判断 字符串1 有没有到结尾if(str1[i]!=str2[i]) break; \/\/ 这计划是判断两个字符串的第 i 个字符相不相等,不相等就跳出else i...

不用strcmp函数,试构造一个函数比较两个字符串大小
这个怎样?int com(char x[],char y[]){ int i,z;z=0;for(i=0;(x[i]!='\\0'||y[i]!='\\0')!=0;i++){ if(x[i]>y[i]){ z=1;break;} if(x[i]<y[i]){ z=2;break;} } return z;}

利用指针来比较两个字符串大小,不能用strcmp()函数 的程序怎么写
{ if(aa[a]>bb[a]){ c+=1;return(c);\/\/break;} if(aa[a]<bb[a]){ return(c);\/\/break;} } } void main(){char*str[1][20];int a,b,c,d,e,f,h,i,j;printf("please input five char:\\n");\/*scanf("%s%s%s",str[0],str[1],str[2],str[3],str[4]);*\/ s...

不使用strcmp函数实现比较两个字符串的功能
i = 0;while((a[i] == b[i]) && (a[i] != '\\0')) i++;if (a[i] == '\\0')printf("The 2 strings are the same.");else printf("The 2 strings are different.");--- 大概就是这样吧...

编写C语言程序,不使用strcmp函数,比较任意两个字符串的...
丹凤呈祥龙献瑞 红桃贺岁杏迎春 福满人间 一年好运随春到 四季彩云滚滚来 万事如意

用循环和数组编写,比较两个字符串的大小。(不用到strcmp函数)
{ int i, n;char s1[50];char s2[50];printf("enter s1:");scanf("%s", s1);printf("enter s2:");scanf("%s", s2);n = strlen(s1) >strlen(s2) ? strlen(s2) : strlen(s1);for (i = 0; i <= n; i++){ if (s1[i] < s2[i]){ printf("s2 > s1\\n");getch(...

相似回答