递归既程序调用其本身,虽然递归对于内存和时间的消耗极大,但是有时候它可以很轻松的实现一些看起来不太容易的题目。
对于一个没有给出长度的字符串,我们有很多做法,可以用动态申请内存的方法来写,也可以通过栈或者双向链表来完成,但如果使用递归的方法,则可以很简单的实现。

void print()
{char a;scanf("%c",&a); if( a != '\n')print();if( a != '\n')printf("%c",a);
}

我们通过\n既回车结束输入。当我们输入字符但没有结束时,在第一个if语句中print()函数不停的调用自身,但是因为没有达到结束的条件所以没有进入第二个if。而当我们输入回车结束输出后,回车所在的那个print()起到了拦截的作用,使递归结束,从而对函数起到了回退的效果,而且回退的函数结束了第一个if,进入了第二个if的条件,函数开始反向输出内容。

图解

输入任意长度的字符串,反向输出(递归)相关推荐

  1. python字符串反向输出_Python反向字符串– 5种方法和最佳方法

    python字符串反向输出 Python String doesn't have a built-in reverse() function. However, there are various w ...

  2. Java 输入一个正整数的字符串,输出与它最接近的对称数字(不包括它自己)的字符串

    题目描述: 输入一个正整数的字符串,输出与它最接近的对称数字(不包括它自己)的字符串 注1: 输入字符串的长度最多不会超过18 注2: 当大于输入数字和小于输入数字的对称数字与输入数字距离相同时,取小 ...

  3. C语言 将字符串反向输出

    C语言 将字符串反向输出 #include <stdio.h> #include <stdlib.h> #include <string.h> //字符串反向输出 ...

  4. 编写程序python输入任意大的自然数、输出各位数字之和_兰理工Python第一次上机作业源码...

    1.编写程序,输入任意大的自然数,输出各位数字之和. a=input() sum=0 for i in a: sum=sum+int(i) print(sum) 运行结果: 2.编写程序,输入两个集合 ...

  5. 代码自测(输入任意两个整数,输出他们的最大公约数和最小公倍数 )-2021-7-16

    输入任意两个整数,输出他们的最大公约数和最小公倍数 package com.qianfeng.day04;import java.util.Scanner;public class Work04 {p ...

  6. C++用vector容器实现输入任意长度数组

    首先vector是什么? 向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container).跟任意其它类型容器一样,它能够存放各种类型的对象.可以简单的认为,向量是一个能 ...

  7. 【Java语言】请输入任意一个三位数,输出个位 , 十位 , 和百位,输入:123,输出:3,2,1

    package com.njwbhz.path;import java.util.Scanner;public class Test13 {/*** @author FairyKunKun* @sin ...

  8. 随机生成一个任意长度的字符串

    此方法主要作用:实现随机生成一个字符串,包括字符和数字,任意长度. 实现思路: 1 判断生成为字母还是数字 2 如果是数字可以直接取值 3 如果是字符则要判断为大写还是小写 4 通过一个字符串来接收各 ...

  9. LeetCode 145. Binary Tree Postorder Traversal--后序遍历--先序遍历反向输出--递归,迭代--C++,Python解法

    题目地址:Binary Tree Postorder Traversal - LeetCode Given a binary tree, return the postorder traversal ...

最新文章

  1. android开发之动画的详解 整理资料 Android开发程序小冰整理
  2. python编程入门p-Python是什么?简单了解pythonp-入门
  3. CTFshow php特性 web148
  4. matlab中gatbx工具箱的添加
  5. python实现批量压缩文件夹
  6. [vue] vue项目有做过单元测试吗?
  7. SpringBoot集成flowable-modeler(6.4.1) 实现免登
  8. php判断字符串里有英文,PHP针对中英文混合字符串长度判断及截取方法示例
  9. ProFile配置节属serializeAs
  10. Github-Git for windowsTortoiseGit下载与安装
  11. 移动视频监控摄像机分类与优势浅析
  12. Android Java编写布局
  13. php之通过curl模仿表单提交(get,post)抓取其他页面的内容
  14. Docker容器实战(七) - 容器中进程视野下的文件系统
  15. 336 Palindrome Pairs 回文对
  16. python获取京东服务器的毫秒级时间
  17. Easypoi 报表模板设置
  18. 使用cachecloud(redis云平台)搭建和监控redis
  19. Excel怎么随机生成偶数
  20. 网卡MAC地址是什么?

热门文章

  1. 超市买苹果变量的定义和使用
  2. 设计模式之_工厂系列_02
  3. java进程优先级,跨平台方式改变java进程优先级
  4. android 调用.h文件,[Android Studio / NDK] 如何使用javah生成.h文件
  5. signature=94f3cd0155e1d8c8ff09aa94177adccd,研擬顆粒流與連體數值耦合方法模擬山崩產生之震動訊號...
  6. qt oracle bindvalue,Qt Sql bindValue与%
  7. Java并发-Fork/Join框架
  8. redis学习篇(十)-----高级特性之持久化处理
  9. 关注并订阅Autodesk地理信息解决方案相关技术博客赢取Autodesk权威开发专家编写的官方推荐教材!!...
  10. 1.sql 数据据基础_数据库的组成