【莱乌编程笔记】用递归逆序字符串

mac2024-04-09  36

【莱乌编程笔记】用递归逆序字符串

【时间】2019-10-31

【内容】算法实例

【编程语言】C/C++

【代码构思】

题目要求使用递归,于是想到写出一个统一的操作,每次执行该函数交换一次字符,通过多次递归调用完成整个字符串的逆序,只是在只剩一个字符时要考虑不一样的处理(即提前保存第一个字符,最后再赋给末尾字符)。

【代码实现】

#include<iostream> #include<cstring> using namespace std; void reverse(char* str){ char temp = *str; int len = strlen(str); *str = *(str+len-1); *(str+len-1)='\0'; //每次令\0的前一位成为\0,并重新计算串长len if(len>1) reverse(str+1); *(str+len-1) = temp; //不同层次递归的temp值不同,最后一层的temp其实是原串最中间靠左字符 } int main(){ char* str=new char[1000]; gets(str); reverse(str); cout<<str<<endl; return 0; }
最新回复(0)