字符串反转方法(递归方式)
来源:互联网 发布:ubuntu12.04安装mysql 编辑:程序博客网 时间:2024/06/04 17:41
#include<stdio.h>#include<stdlib.h>#include<string.h>void inverseDG(char* p);void inverseDGheQJ(char* p);void inverseDGheFQJ(char* p,char* Add);char g_buf[100];//定义全局变量void main(){ char buf[]="abcdefg"; //(1)仅用递归方式,逆向打印 inverseDG(buf); //(2)递归+全局 memset(g_buf,0,sizeof(g_buf)); //void *memset(void *s, int ch, size_t n); //将s中当前位置后面的n个字节用ch替换并返回s inverseDGheQJ(buf); printf("%s\n",g_buf); //(3)递归+非全局变量 char mybuf[100]={0};//定义非全局变量 inverseDGheFQJ(buf,mybuf); printf("%s\n",mybuf); system("pause");}//(1)通过递归方式,逆向打印void inverseDG(char* p){ if(p==NULL){return;}//以下两点为递归结束条件 if(*p=='\0'){return;} inverseDG(p+1);//通过递归的方式,将字符数组中的数据的地址一个个的压入栈(先进后出),并逆向弹出,此时没有进行打印,而是执行了函数调用 printf("%c",*p);}//(2)递归和全局变量(把逆序的结果存入全局变量)void inverseDGheQJ(char* p){ if(p==NULL){return;}//以下两点为递归结束条件 if(*p=='\0'){return;} inverseDG(p+1); strncat(g_buf,p,1);//通过strncat,将p中每1个字符放到g_buf中,并连接,如果用strncpy,则是将p中每一个字符“复制”到g_buf中,每次都放到了同一个地方,将原值覆盖,因此不能用strncpy}//(3)递归和非全局变量(递归指针做函数参数)bufresult是定义的非全局变量的地址void inverseDGheFQJ(char* p,char* bufresult){ if(p==NULL&&bufresult==NULL){return;}//以下两点为递归结束条件 if(*p=='\0'){return;} inverseDGheFQJ(p+1,bufresult); strncat(bufresult,p,1);//每次把p地址的值存放1个给bufresult地址中,并连接成字符串}
0 0
- 字符串反转方法(递归方式)
- 反转字符串递归与非递归方式
- 递归方法解决字符串反转
- java实现单链表反转(递归方式)
- (C语言)递归实现字符串反转
- 字符串反转+递归
- 递归反转一个字符串
- 递归反转字符串
- 递归实现字符串反转
- 递归反转字符串
- 递归反转字符串
- 递归实现字符串反转
- 各种字符串反转方法(异或交换法,递归方法,二分思想)
- 单链表的反转(递归与非递归方式)
- 16、反转链表(递归方法)
- 反转字符串 不同方式
- 运用递归实现字符串反转
- 递归实现字符串反转算法
- java String类中的方法将一句英文单词的首字母转成大写
- 通俗理解卷积神经网络
- 深入学习SSH框架(Spring MVC +Spring FrameWork +Hibernate +Spring Security)《四:Spring Framework配置篇》
- React Native与Android原生通信交互详情
- POJ
- 字符串反转方法(递归方式)
- GTM系列数学书籍免费下载~
- ios学习第六天(四)美丽的自定义View
- sdut_java_Eddy的难题
- SpringBoot 数据库的基本操作
- 文件的归档和传输
- dll已退出,代码为 5。请验证您是否有足够的权限来运行此命令。
- linux中的tty,控制台,虚拟终端,串口,console(控制台终端)详解和区别
- Java实现生产者--消费者问题