问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
递归题目是输入ABC*,问输出的结果是什么?
结果为ABC**CBA
递归题目是输入ABC*,问输出的结果是什么?
结果为ABC**CBA
getchar()函数机制
在调用getchar()函数时,编译器会依次读取用户键入缓存区的一个字符(注意这里只读取一个字符,如果缓存区有多个字符,那么将会读取上一次被读取字符的下一个字符),如果缓存区没有用户键入的字符,那么编译器会等待用户键入并回车后再执行下一步
(注意键入后的回车键也算一个字符,输出时直接换行)。
而putchar()是直接把刚刚获取的字符打印出来。所以说你这样直接把get和put连接一起写可以说有很大漏洞。
getchar()回车也算字符,然后putchar又是及时打印的。
如果用getchar还需要处理空格。
建议还是这样写
#include <stdio.h>
int main(){
char c[5];
scanf("%s",&c);//获取ABC*
printf("%s",c);//先把ABC*打印出来
for(int i=3;i>=0;i--){//for循坏逐个打印*CBA(倒序)
printf("%c",c[i]);//注意此处为逐个输出单个字符,要用%c
}
return 0;
}
如果还有什么问题欢迎提出!