当前位置: 首页 > news >正文

C语言学习笔记20260526—递归/循环法实现字符串逆序排序

一.递归实现字符串逆序排序递归的核心思想交换第一个字符和最后一个字符把中间剩下的字符串再递归逆序直到字符串长度 ≤1 停止递归出口。递归函数里递归上面的代码 → 递去的时候执行往前深入递归下面的代码 → 归来的时候执行回溯往回走。二.代码#define_CRT_SECURE_NO_WARNINGS#includestdio.h//编写一个函数reverse_string(char* string)(递归实现)//实现将参数字符串中的字符反向排序不是逆序打印。//要求不能使用C函数库中的字符串操作函数。//求字符串长度函数intmy_strlen(char*str){intcount0;while(str[count]!\0){count;}returncount;}//递归实现字符串逆序排序//递归的核心思想//1. 交换第一个字符和最后一个字符//2. 把中间剩下的字符串再递归逆序//3. 直到字符串长度 ≤1 停止递归出口//递归函数里//递归上面的代码 → 递去的时候执行往前深入//递归下面的代码 → 归来的时候执行回溯往回走voidreverse_string(char*str){// 递归出口只剩0或1个字符不用逆序if(my_strlen(str)1)return;intlenmy_strlen(str);charleft_char*str;// 保存第一个字符*str*(strlen-1);// 把最后一个字符放到最前面*(strlen-1)\0;// 最后一位置\0统计字符串长度遇\0结束新需要判断的字符串终点标志。reverse_string(str1);// 递归逆序中间部分*(strlen-1)left_char;// 恢复最后一位 先把所有递归全部调用完 → 一层一层往回退 → 退回来的时候才执行这行}// 循环法字符串逆序排序voidreverse_string1(char*str){intleft0;intrightmy_strlen(str)-1;while(leftright){// 交换首尾chartempstr[left];str[left]str[right];str[right]temp;left;right--;}}intmain(){charstr[101]{0};// 初始化全0安全inti0;printf(请输入100个以内的字符\n);//scanf 读取一个字符读取成功 → 返回 1/* 同时满足 2 个条件循环才继续 1. 还没存满 100 个字符i 100 2. 成功读取到了一个字符scanf(%c, str[i]) 1*/// 正确循环先读判断再自增while(i100scanf(%c,str[i])1){if(str[i]\n){// 回车结束输入break;}i;}str[i]\0;// 最后必须加字符串结束符printf(你输入的内容是%s\n,str);intszmy_strlen(str);printf(你总共输入的字符数字为%d\n,sz);reverse_string(str);printf(递归法排序后内容是%s\n,str);reverse_string1(str);printf(循环法排序后内容是%s\n,str);//逆向排序了两次变成正向输出return0;}三. 运行结果
http://www.zskr.cn/news/1392400.html

相关文章:

  • 台州路桥,2026年5月亲测靠谱音改店
  • 从散装到一体化:EasyDSS平台3步打造私有化企业融媒体平台
  • 2026 海南农牧农林企业注册代办排行 种植养殖公司合规落地指南 - 速递信息
  • BetterNCM插件管理器:三步搞定网易云音乐功能大升级
  • 如何选择靠谱防火门厂家?筑牢消防安全防线
  • 2026陶瓷填料厂家:瓷球厂家,塔器传质防腐填料智造商盘点 - 栗子测评
  • 深度解析PinyinJS:前端汉字拼音转换的架构设计与实战应用
  • 企业级IT服务管理实战指南:iTop开源CMDB深度解析
  • HC8313高效率,24V输入,5A负载同步整流DC-DC降压转换器
  • UI-TARS-desktop:如何用AI视觉语言模型实现桌面自动化控制
  • UI-TARS桌面版:用自然语言控制计算机的革命性AI助手
  • 终极指南:简单三步打造个性化macOS鼠标光标主题
  • 轨迹预测算法嵌入式部署:从模型原理到车规级芯片的优化实践
  • 基于Sentence-BERT的NoSQL数据库语义模式提取与RDF图谱构建实践
  • 跨平台资源下载终极指南:3分钟学会无水印视频批量采集
  • 英雄联盟智能工具箱:5大核心功能提升你的游戏效率与体验
  • Python新手教程五分钟搞定Taotoken大模型API调用
  • PCA-GLOVE与RoBERTaNet集成模型:网络欺凌检测的NLP实战解析
  • 基于ESP8266与MPU6050的智能转向灯自动控制系统设计与实现
  • 3步掌握跨平台资源捕获:新手快速下载指南
  • Windows UPS监控终极指南:使用WinNUT-Client轻松管理不间断电源
  • 终极浏览器视频嗅探指南:猫抓工具让你轻松捕获任何网页媒体资源
  • Steam挂刀监控系统终极指南:5分钟搭建自动交易监控平台
  • ClaudeCode入门12-多文件协作(小白入门:同时改十几个文件?看AI如何丝滑搞定跨文件重构)
  • 度量学习在病理图像分类中的应用:构建可解释的AI诊断模型
  • 在模型广场对比不同厂商模型特性并一键获取调用配置信息
  • 基于标签级三元组网络的加密流量多标签识别技术解析
  • 保定黄金回收选长悦 大盘减一元诚信老店当场秒到账 - 专业黄金回收
  • 3个步骤,如何用AI自动化助手彻底改变你的工作方式?
  • WavesFM:基于ViT与LoRA的无线基础模型,实现6G多任务统一智能