你的代码存在一些问题。我来给你解释一下并提供正确的代码。
首先,你定义的字符变量str应该是一个字符串数组,而不是单个字符。所以要修改为`char str[101];`,这样就可以存储最大长度为100(加上末尾的'\0')的字符串了。
其次,你使用的是`gets`函数来读取字符串,但是这个函数已经被废弃了,因为它不安全。你可以使用`fgets`函数来读取字符串,并指定最大读取的字符数为`100`,这样就不会超出数组的范围了。
然后,你在颠倒字符串的循环中,交换字符的代码有问题。你需要交换的是`str[i ]`和`str[len-1-i]`,而不是`str`本身。可以使用一个临时变量来完成交换操作。
最后,你在打印字符串的时候,应该使用`puts`函数而不是`printf`函数。因为`puts`会自动在末尾添加换行符。
下面是修改后的代码:
- #include <stdio.h>
- #include <string.h>
- int main() {
- char str[101];
- fgets(str, 100, stdin);
- int len = strlen(str);
- for (int i = 0; i < len / 2; i++) {
- char temp = str[i];
- str[i] = str[len - 1 - i];
- str[len - 1 - i] = temp;
- }
- puts(str);
- return 0;
- }
复制代码
现在你可以输入一个字符串,然后代码会将其倒序输出。希望对你有帮助!
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。