#include<stdio.h>
#include<string.h>
int main()
{
char str1[10],str2[10];
int i=0,resu;
gets(str1);
gets(str2);
while( (str1[i]==str2[i]) && (str1[i] !='\0') )
i++;
if(str1[i]=='\0' && str2[i] == '\0')
resu = 0;
else
resu = str1[i]-str2[i];
printf("result:%d\n",resu);
return 0;
}
resu:55
while条件中,需要把str1[i]!='\0' 和 str2[i]!='\0'放在前面
resu = str1[i] - str2[i];这里输出的是两个字符串最后一个字符的比较结果,也就是字符'7'减去'\0',字符'7'的ASCII码 是55,'\0'的ASCII码是0,所以结果就是55。如果只是想输出1或者-1,可以改成下面的:
#include<stdio.h>
#include<string.h>
int main()
{
char str1[10], str2[10];
int i = 0, resu;
gets(str1);
gets(str2);
while ((str1[i] != '\0') && (str2[i] != '\0') && (str1[i] == str2[i]) )
i++;
if (str1[i] == '\0' && str2[i] == '\0')
resu = 0;
else if (str1[1] != '\0')
resu = 1;
else
resu = -1;
printf("result:%d\n", resu);
return 0;
}
就是55没错,你是把字符按整数输出,输出的值就是字符对应的ASCII码。字符'7'对应的ASCII就是55。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!