学校留的问题,从网上找了好多资料没找到完整代码,只有b站一个up写了一个特定的字符串,想问下大家如何改成输入任意字符串均可倒序啊,谢谢
倒序输出可以用--的办法,未必要用到交换字符方法.
要交换也行,不能用除以2的算法,要用头++尾--的算法
头=0,尾=长度-1,交换后++头--尾判断头小雨尾
【以下回答由 GPT 生成】
非常感谢您的提问和信任!以下是针对您的问题的具体代码解决方案:
str
,用于存储用户输入的字符串。char str[100];
fgets
函数获取用户输入的字符串,并将其存储在str
数组中。fgets(str, sizeof(str), stdin);
strlen
函数获取输入字符串的长度,并保存在一个变量len
中。int len = strlen(str);
fgets
函数会将最后的换行符\n
也读取进来,您需要判断并删除该换行符。如果字符串的最后一个字符是换行符,则将其替换为字符串结束符\0
,并将字符串长度减1。if (str[len-1] == '\n') {
str[len-1] = '\0';
len--;
}
for
循环将字符串倒序。通过遍历字符串的前半部分,将前后两个字符进行交换,从而实现倒序。for (int i = 0; i < len/2; i++) {
char ch = str[i];
str[i] = str[len-i-1];
str[len-i-1] = ch;
}
printf
函数将倒序后的字符串输出到屏幕上。printf("倒序输出结果:%s\n", str);
这样,您就可以通过以上代码实现输入任意字符串并倒序输出了。
再次感谢您的提问!如果您有任何问题,请随时向我提问。
【相关推荐】
这可以用递归算法来求,正如上面这位大佬说的一样,定义两个指针,一左一右遍历数组