猿问

C语言字符串逆置程序不懂?

#include<stdio.h>
void reverse()
{
char ch;

if((ch=getchar())!='\n')
reverse();
if(ch!='\n')
putchar(ch);

return;
} main()
{
reverse();
} 就这个函数,我看都没看懂呢!~它怎么就把输入的字符串给逆置输出了呢?哥/姐 帮忙下吧!~书面说不明白 ,那语音吧!~

萧十郎
浏览 727回答 3
3回答

30秒到达战场

程序使用了“递归”算法,通过getchar()函数将输入的字符依次入栈,输入结束后,使用putchar(ch)函数,将字符从栈顶依次取出,这样输出就逆置了。这是使用了栈的特点:先进后出。如:xiao,依次进栈:o(栈顶)aix(栈底)出栈是从栈顶开始取的,每取一次就输出。所以就逆置了:oaix
随时随地看视频慕课网APP
我要回答