能问一下怎样才能让“\0”-字符都能有结果呀,比如andd-an,让范围更广,更全面。
你是想实现类似strcmp()
函数吧,循环后面还要加个判断,如果有一个字符串先结束,你还要再减一次
#include <stdio.h>
int main()
{
char s1[100] = {0};
char s2[100] = {0};
int i = 0, res = 0;
printf("请输入s1:");
fgets(s1, 100, stdin);
printf("请输入s2:");
fgets(s2, 100, stdin);
while (s1[i] != '\0' && s2[i] != '\0')
{
res = s1[i] - s2[i];
if (res != 0)
break;
i++;
}
if (res == 0)
res = s1[i] - s2[i];
printf("结果为:%d\n", res);
return 0;
}
字符串的比较只能是相同长度的比较,不同长度字符串没有比较的意义。因为本身字符就不存在进制的概念,就没有什么进一退一的计算了,只能同一个位置的字符相减
你想的到什么结果,andd-an得到什么
ASSII码值是啥,你要理解啊。
ASSII是针对一个字符的,不是一个字符串的。
ASSII码表百度看一下,针对一个字符,我们看到的是字符,但计算机底层其实还是0和1,其实如果把存字符的八位不按assii码表转成字符输出,按照数字输出,就是assii表的值,
比如: