水煮齐国大夫 发表于 2020-2-3 00:20:41

关于c语言22讲第三题

#include<stdio.h>

int main()
{
        char str1,str2;
        char *p=str1,*q=str2;
        int i=0,sign=1;
       
        printf("请输入第一个字符串:");
        fgets(str1,1024,stdin);
       
        printf("请输入第二个字符串:");
        fgets(str2,1024,stdin);

        while(*p++ == *q++)
        {
                i++;
               
                if(*p++=='\0')
                {
                        sign=0;
                        break;
                }
        }

        if(sign)
        {printf("两个字符串不完全相同,第%d个字符出现不同!",i+1);}
        else
        {printf("两个字符串完全一致!");}
}

不知道为什么总会显示第二个字符不同。。是循环里面出了问题吗{:10_292:}

召唤风云 发表于 2020-2-6 12:00:28

你的if里面的条件写错了。第1个的++删掉。第2个改为(sign==0)

召唤风云 发表于 2020-2-6 12:03:05

你的p加了两次,第2个字符肯定不会相等。写错了,第2个if没有问题。

水煮齐国大夫 发表于 2020-2-6 18:20:58

召唤风云 发表于 2020-2-6 12:03
你的p加了两次,第2个字符肯定不会相等。写错了,第2个if没有问题。

哦哦原来是这样!!{:10_292:}非常感谢您的帮助{:10_297:}
页: [1]
查看完整版本: 关于c语言22讲第三题