文章目录

  • 一、借助 递归函数操作 逆序打印字符串
  • 二、完整代码示例

一、借助 递归函数操作 逆序打印字符串


递归需要掌握下面 222 个点 :

  • 参数入栈模型 :

    • 第 111 次 , “sdh” 字符串入栈 ;
    • 第 222 次 , “dh” 字符串入栈 ;
    • 第 333 次 , “h” 字符串入栈 ;
    • 第 444 次 , “\0” 字符串入栈 ;
  • 函数调用模型 :

递归函数 需要有 递归停止条件 和 递归操作 222 个要素 ;

递归停止条件 : 遍历字符串直到遍历到字符串结尾处 ;

    // 递归停止条件if(*str == '\0'){return;}

递归操作 : 每次递归 , 字符串中的指针向后移动一位 , 直到字符串移动到最后一位 \0 位置 ;

    // 递归操作// 该递归操作会逐步 将 字符串 从开始位置 入栈// 直到递归到 '\0' 位置时 , 才开始出栈// 此处是递归点// 递归操作执行到这里 , 开始一直递归// 递归结束后 , 依次执行下面的代码str_inverse(str + 1);

二、完整代码示例


完整代码示例 :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>/** 通过递归方式 , 逆向遍历字符串* 将 递归遍历 结果存入 全局变量中* 递归指针 作 函数参数*/
void str_inverse(char *str)
{// 验证函数形参指针合法性if(str == NULL){return;}// 递归停止条件if(*str == '\0'){return;}// 递归操作// 该递归操作会逐步 将 字符串 从开始位置 入栈// 直到递归到 '\0' 位置时 , 才开始出栈// 此处是递归点// 递归操作执行到这里 , 开始一直递归// 递归结束后 , 依次执行下面的代码str_inverse(str + 1);// 打印出栈的字符// 注意 : 该打印操作是 递归停止条件达成后//       逐个出栈打印printf("*str = %c\n", *str);
}int main()
{// 存在如下字符串, 求下面字符串 "abc" 出现次数char *str = "sdh";// 字符串翻转str_inverse(str);// 命令行不要退出system("pause");return 0;
}

执行结果 :

*str = h
*str = d
*str = s
请按任意键继续. . .

【C 语言】字符串模型 ( 字符串翻转模型 | 借助 递归函数操作 逆序打印字符串 | 递归要素 | 递归停止条件 | 递归操作 )相关推荐

  1. 【C 语言】字符串模型 ( 字符串翻转模型 | 借助 递归函数操作 逆序字符串操作 | 引入线程安全概念 )

    文章目录 一.引入线程安全概念 二.完整代码示例 一.引入线程安全概念 在上一篇博客 [C 语言]字符串模型 ( 字符串翻转模型 | 借助 递归函数操作 逆序字符串操作 | strncat 函数 ) ...

  2. 【C 语言】字符串模型 ( 字符串翻转模型 | 借助 递归函数操作 逆序字符串操作 | strncat 函数 )

    文章目录 一.strncat 字符串连接函数 二.借助 递归函数操作 逆序字符串操作 三.完整代码示例 一.strncat 字符串连接函数 strncat 函数 : 将 const char *src ...

  3. [C语言指针练习二]字符串逆序,使用指针,写一个函数,可以逆序字符串的内容。

    指针练习题2 题目:字符串逆序 内容与要求:使用指针,写一个函数,可以逆序一个字符串的内容. 举例: 输入: I Love You. 输出: .uoY evoL I   输入: abc 输出: cba ...

  4. 逆序字符串 和 字符串的逆序输出 的区别~

    今天我们讲解字符串的逆序和逆序输出,并且通过一个综合题型来加深印象和练手! 超佳出品 文章目录 前言 一.逆序字符串,字符串的逆序输出是什么? 二.实例讲解 1.字符串的逆序输出 2.逆序字符串 总结 ...

  5. 利用函数“逆序字符串”的三种解法

    文章目录 方法一:使用数组下标的方法进行字符串的逆序 方法二:使用数组地址的方式逆序字符串 方法三:直接传数组首位元素地址进行逆序 写一个函数,可以逆序一个字符串的内容 方法一:使用数组下标的方法进行 ...

  6. python12345输出54321_C语言编写程序 :输入一个正整数,将其逆序输出。例如,输入12345,输出54321. 跪求大神用循环语句...

    点击查看C语言编写程序 :输入一个正整数,将其逆序输出.例如,输入12345,输出54321. 跪求大神用循环语句具体信息 答:#include int main() { int num; scanf ...

  7. c语言智力题 操作符详解例题 数据存储 指针初阶 水仙花数 杨辉三角 逆序字符串 喝汽水问题 打印图形 猜凶手 使用指针打印数组内容 调整奇数偶数顺序 运动员猜名次

    [题目名称] 下面代码的结果是:a #include <stdio.h> int i; int main() {i--; //sizeof'的返回值是无符号整型if (i > siz ...

  8. C语言逆序字符串(递归实现)

    算法思想 以字符串"abcdef"为例 1.将a保存到temp中 2.将f放到a的位置 3.f处填写'\0' 4.计算bcde的长度 5.如果bcde的长度大于1,则逆序 6.将a ...

  9. 每天一道LeetCode-----以单词为单位逆序字符串,每个单词之间以一个空格分隔(原字符串中可能有多个空格)

    Reverse Words in a String 原题链接Reverse Words in a String 将字符串以单词为单位逆序,每个单词之间以一个空格间隔(原字符串中可能有多个空格) 逆序的 ...

最新文章

  1. intellij idea 常见遇到的问题整理
  2. 我现在的vimrc配置文件
  3. 组态王浏览器java_1工程浏览器是组态王的集成开发环境在这里可以
  4. Angular和SAP C4C的事件处理队列
  5. 2.18 Logistic 损失函数的解释-深度学习-Stanford吴恩达教授
  6. 前端学习(2767):下拉刷新的学习
  7. Python3 学习系列 丨 博客目录索引
  8. 钉钉关键字回复功能_在家办公首日:钉钉、企业微信集体“崩溃”,只能选择 QQ、微信...
  9. java了解异常_ID检测_Java入门第三季7-1简易扑克牌游戏(自定义玩家个数,玩家个数和ID异常检测)...
  10. oracle 的跨天查询,考勤跨天如何统计 - Oracle开发 - ITPUB论坛-中国专业的IT技术社区...
  11. java编码问题详解
  12. java 分词词频_利用word分词来对文本进行词频统计
  13. html5 input选择文件,input文件选择,限定文件类型。
  14. c语言如何限制数字大小下线,C语言学习Day19
  15. 5.26. sysvmsg
  16. 如何选取适合自己的三维扫描仪
  17. Unity 5.x 导入教学Demo
  18. cocos creator2.3.5休闲游戏英文版(连连看)源码H5+安卓+IOS三端源码
  19. 双显示器如何设置上下显示和鼠标上下进入第二屏幕?
  20. SELECT连表查询重复字段

热门文章

  1. 使用windows服务更新站点地图
  2. IEC61850电能质量1~50次谐波有效值建模
  3. 最近QQ联系我解决问题的郁闷
  4. ASP.NET知识点:母版页的路径问题
  5. 【C#食谱】【杭帮菜】菜单2:写一个TCP客户端
  6. Python模块EasyGui专题学习
  7. DRCNN超分辨重建2016年
  8. 《猿从程序项目经理》读书笔记(八):程序猿站 -- 再牛也合群
  9. 通过微软的cors类库,让ASP.NET Web API 支持 CORS
  10. div样式调整.txt