gpt4 book ai didi

c++ - 反转字符串的递归方法

转载 作者:太空宇宙 更新时间:2023-11-04 15:21:34 24 4
gpt4 key购买 nike

我正在尝试编写一个递归方法来反转字符串,如下所示。

void reverse(string s,int i,int l)
{
static int j;
while(i<l)
{
char ch=s[i];
cout<<ch<<endl;
reverse(s,i+1,l);
cout<<"after="<<ch<<endl;
s[j]=ch;
j++;
}
cout<<s<<endl;
s[j]=0;
}

但是我的输出不正确。 "after="<<ch总是打印字符串的最后一个字符。函数的参数是 s 是 std::string,i 是从 0 开始的索引,l 是字符串的长度。谁能指出我哪里做错了。

最佳答案

您可能已经发现了问题。

另一种方法,如果您不喜欢/不想要迭代器或反向函数。

 string revStr(string str){
if (str.length() <= 1) {
return str;
}else{
return revStr(str.substr(1,str.length()-1)) + str.at(0);
}
}

关于c++ - 反转字符串的递归方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17825367/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com