癞蛤蟆丶ccc 发表于 2020-12-11 12:37:03

比较字符串计算ASCII码差值代码求分析

#include<stdio.h>
intstrcompare( char *str1,char *str2);
intmain( ){
    chara,b;
    gets(a);
    gets(b);
    printf( "%d\n", strcompare(a,b)) ;
    return 0 ;
}
int strcompare( char *str1 , char *str2 )
{
    int i=0;
    while(*(str1+i)==*(str2+i)&&*(str1+i)!='0'&&*(str2+i)!='0')
      i++;
      return (*str1+i)-*(str2+i);
}

我这个代码他两个字符串不一样的时候是对的 但是两个字符串相同的时候差值不是0

sunrise085 发表于 2020-12-11 13:12:37

while循环条件的后半部分写错了,应该是
while(*(str1+i)==*(str2+i)&&*(str1+i)!='\0'&&*(str2+i)!='\0')

癞蛤蟆丶ccc 发表于 2020-12-11 14:05:23

sunrise085 发表于 2020-12-11 13:12
while循环条件的后半部分写错了,应该是

还不对

sunrise085 发表于 2020-12-11 18:12:11

癞蛤蟆丶ccc 发表于 2020-12-11 14:05
还不对

第15行业写错了,第一个*应该在括号外,你写在括号内了

癞蛤蟆丶ccc 发表于 2020-12-11 19:22:28

sunrise085 发表于 2020-12-11 18:12
第15行业写错了,第一个*应该在括号外,你写在括号内了

感谢 我太粗心了{:5_109:}
页: [1]
查看完整版本: 比较字符串计算ASCII码差值代码求分析