利用数组实现:输入一个字符串然后将其倒叙输出

学校留的问题,从网上找了好多资料没找到完整代码,只有b站一个up写了一个特定的字符串,想问下大家如何改成输入任意字符串均可倒序啊,谢谢

img

倒序输出可以用--的办法,未必要用到交换字符方法.
要交换也行,不能用除以2的算法,要用头++尾--的算法
头=0,尾=长度-1,交换后++头--尾判断头小雨尾

【以下回答由 GPT 生成】

非常感谢您的提问和信任!以下是针对您的问题的具体代码解决方案:

  1. 首先,您需要在程序中声明一个字符数组str,用于存储用户输入的字符串。
char str[100];
  1. 接下来,您可以使用fgets函数获取用户输入的字符串,并将其存储在str数组中。
fgets(str, sizeof(str), stdin);
  1. 使用strlen函数获取输入字符串的长度,并保存在一个变量len中。
int len = strlen(str);
  1. 由于fgets函数会将最后的换行符\n也读取进来,您需要判断并删除该换行符。如果字符串的最后一个字符是换行符,则将其替换为字符串结束符\0,并将字符串长度减1。
if (str[len-1] == '\n') {
    str[len-1] = '\0';
    len--;
}
  1. 使用for循环将字符串倒序。通过遍历字符串的前半部分,将前后两个字符进行交换,从而实现倒序。
for (int i = 0; i < len/2; i++) {
    char ch = str[i];
    str[i] = str[len-i-1];
    str[len-i-1] = ch;
}
  1. 最后,您可以使用printf函数将倒序后的字符串输出到屏幕上。
printf("倒序输出结果:%s\n", str);

这样,您就可以通过以上代码实现输入任意字符串并倒序输出了。

再次感谢您的提问!如果您有任何问题,请随时向我提问。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

这可以用递归算法来求,正如上面这位大佬说的一样,定义两个指针,一左一右遍历数组