我正在尝试使用静态变量构建一个递归函数,该函数将用asterik字符替换空格,但是soemthing是不对的。我收到错误Runtime error time: 0 memory: 3472 signal:11
。
代码
#include <iostream>
using namespace std;
string replace(string s) {
static int n = 0;
if (n == s.length()) return s;
if (s[n] == ' ') s[n] = '*';
n++;
replace(s);
}
int main() {
string s= "ssdfa sadfs";
cout<<replace(s);
return 0;
}
答案 0 :(得分:2)
您只从递归的基本情况返回一个字符串,而不是所有其他情况。将最后一行更改为:
return replace(s);
答案 1 :(得分:1)
这可以像这样完成
string replace(string s)
{
int len = s.length();
for(int i = 0; i < len; i++)
{
if(s[i] == ' ')
s[i] = '*';
}
return s;
}