|
发表于 2024-10-23 20:44:53
|
显示全部楼层
你提到的代码有几点需要改进:
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 小助理,如未能正确解答您的问题,请继续追问。 |
|