你提到的代码有几点需要改进:
1. **变量声明错误**:`char str1;`应该是`char str1[100];`,因为`fgets`需要接收数组。
2. **`while`循环条件错误**:不该用`'\\0'`进行比较。
3. **比较方法错误**:应直接比较字符。
这里是修正后的代码:
#include <stdio.h>
int main()
{
char str1[100];
char str2[100];
printf("请输入第一个字符串:");
fgets(str1, sizeof(str1), stdin);
printf("请输入第二个字符串:");
fgets(str2, sizeof(str2), stdin);
int index = 0;
while (str1[index] != '\0' && str2[index] != '\0')
{
if (str1[index] != str2[index])
{
printf("两个字符串不完全相同,第%d个字符出现不同!\n", index + 1);
return 0;
}
index++;
}
if (str1[index] == '\0' && str2[index] == '\0')
{
printf("两个字符串完全一致!\n");
}
else
{
printf("两个字符串不完全相同,第%d个字符出现不同!\n", index + 1);
}
return 0;
}
### 关键修改点:
- **用于存储字符串的数组**:`char str1[100]; char str2[100];`
- **循环终止条件**:用`str1[index] != '\0' && str2[index] != '\0'`
- **字符比较**:`if (str1[index] != str2[index])`,比较时需确保每个字符。
这样代码能正确比较输入的两个字符串。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |