翻转字符串,如:abcde-->输出-->edcba
法一:for循环反向输出字符串就行
#include<iostream>
using namespace std;
int main(){
string src="abcde";
for(int i=4;i>=0;i--){
cout<<src[i];
}
return 0;
}
法二:递归思想,使用substr分离字符串各个字符
字符串.substr(参数1,参数2)
参数1:
-
如果是0或正整数,则代表字符串截取的起始下标
-
如果是负数,则代表从倒数第几个字符开始截取
参数2:
-
字符串截取字符的个数(正整数)
-
如果是0或负数,则会返回空字符串
#include<bits/stdc++.h>
using namespace std;
//找重复,即子问题
//找变化,变化的量做参数
//找边界
string ZiFu(string src,int ends){ //字符串翻转,ends表示字符串下标
if(ends==0)
return src.substr(0,1); //substr(参数1,参数2),从参数1开始截取参数2个字符
return src.substr(ends,1)+ZiFu(src,ends-1); //从最后一个字符开始分离,递归循环
}
int main(){
string src="abcde";
int ends=4;
cout<<ZiFu(src,ends);
return 0;
}