永发信息网

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

答案:3  悬赏:0  手机版
解决时间 2021-05-16 17:17

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

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

return;
}

main()
{
reverse();
}

就这个函数,我看都没看懂呢!~

它怎么就把输入的字符串给逆置输出了呢?

哥/姐 帮忙下吧!~

书面说不明白 ,那语音吧!~

最佳答案

Reverse   Reverse()
  功能颠倒字符串中字符次序。
  语法Reverse ( string )
  参数string:要颠倒字符次序的字符串返回值String。函数执行成功时返回颠倒字符次序后的字符串,如果发生错误,那么返回空字符串("")。用法Reverse()函数将一个字符串中最后一个字符放置到另一个字符串的第一个字符位置、倒数第二个字符放置在另一个字符串的第二个字符位置,以此类推。



Reverse()系统中就有的;这里的的确不是调用系统的!



#include<stdio.h>
①void reverse()
{
char ch; //定义ch


if((ch=getchar())!='\n') //从键盘接受一个字符,如果不是换行符条件为真,执行②,否则执行③
②reverse(); //返回①递归接收字符
③if(ch!='\n') //判断ch是否为换行符,条件为真到④执行
④putchar(ch); //输出字符


return;
}


main()
{
reverse();
}

全部回答

这个函数是用户自己定义的,不是系统函数。

为什么这样说,你可以看头文件,上面只有一个负责输入输出的头文件,并没有#include <string.h>

程序使用了“递归”算法,通过getchar()函数将输入的字符依次入栈,输入结束后,使用putchar(ch)函数,将字符从栈顶依次取出,这样输出就逆置了。这是使用了栈的特点:先进后出。

如:xiao,依次进栈:

o(栈顶)

a

i

x(栈底)

出栈是从栈顶开始取的,每取一次就输出。所以就逆置了:

oaix

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
问下惠普和联想的电脑有什么好的推荐?
"那次,我流泪了"作文
单招都考试什么,中国银行考试考哪些?
有很多话憋在心里面,觉的好难受,可又讲不出
如果她不是处女你会不会介意
桃江县益阳棉老大地址在哪里啊
孩子喜欢学习,是不是给他报个班会更好呢
怎么才能叫坏人都变好呢?
关于扬州马拉松志愿者口号!
鸡鸭鱼肉,谁对身体最好?
告诉我!要我该怎样做?
浉河区信阳海尔热水器厨房电器(民权街)在哪里
在Excel工作表中,如果要输入数字字符2006,
bonamana完整版
广东重本大学有哪些,广东工业大学怎么样
推荐资讯
丹霞地貌风景句子,丹霞山景色诗句
请问送给什么给钓鱼爱好者比较好?(刚入门不久
求用java 制作歪歪所用到的相关图片
为什么日本的动漫在我国这么流行?
Ca(OH)2和NaHCO3怎么反应?方程式是什么?实
为什么我CF图标消失了啊?不要荣誉点的那个
甲方案 需交运费600元另外每个8.8元 乙方案
在校期间的自我评语、及获得的奖励
人做梦是否会梦到将来才会发生的事
我预录取了我又报了其他的学校会不会有影响啊
樊城区襄樊相君宾馆地址在什么地方,想今天过
写诗怎么写,保险公司询问笔录怎么做
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?