一个程序思路问题
#include <stdio.h>#define MAX 1024
int main()
{
char str1;
char str2;
char *target1 = str1;
char *target2 = str2;
int index = 1;
printf("请输入第一个字符串:");
fgets(str1, MAX, stdin);
printf("请输入第二个字符串:");
fgets(str2, MAX, stdin);
while (*target1 != '\0' && *target2 != '\0')
{
if (*target1++ != *target2++)//我的思路:最后一个字符不相等 target++='\0'
{
break;
}
index++;
}
if (*target1 == '\0' && *target2 == '\0')//我的思路:那么他就应该跳入这个循环
{
printf("两个字符串完全一致!\n");
}
else
{
printf("两个字符串不完全相同,第 %d 个字符出现不同!\n", index);
}
return 0;
}
但是程序还是运行正确了这是为啥 这个程序没问题啊。
不知道你想问什么,
没太明白你的那俩个注释要说明什么 break出去的,if条件不成立,输出else部分 sunrise085 发表于 2020-4-13 10:30
这个程序没问题啊。
不知道你想问什么,
没太明白你的那俩个注释要说明什么
我的意思是最后一个字符不相等,然后两个target++他就全等于‘\0’了,应该输出两个字符完全一致才对啊 BngThea 发表于 2020-4-13 10:32
break出去的,if条件不成立,输出else部分
我的意思是最后一个字符不相等,然后两个target++他就全等于‘\0’了,然后break,应该输出两个字符完全一致才对啊 孤世星辰 发表于 2020-4-13 10:35
我的意思是最后一个字符不相等,然后两个target++他就全等于‘\0’了,然后break,应该输出两个字符完全 ...
不是结束符,还有一个换行符\10,所以不成立!if (*target1 == '\0' && *target2 == '\0')//我的思路:那么他就应该跳入这个循环
页:
[1]