c++ - 递归中的运行时内存错误用c++中的字符函数替换空格

标签 c++

我正在尝试使用静态变量构建一个递归函数,该函数将用星号字符替换空格,但是有些东西不对劲。我收到错误 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;
}

最佳答案

您只是从递归的基本情况返回一个字符串,而不是所有其他情况。将最后一行更改为:

return replace(s);

关于c++ - 递归中的运行时内存错误用c++中的字符函数替换空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26558820/

相关文章:

c++ - 如何将无符号字符数组解析为数值数据

c++ - 让一个类完全在自己的线程上运行

c++ - 有没有更好的方法来实现 2-SUM 算法?

c++ - 如何解决这个 Unresolved 断点警告?

c++ - 使用 Qt 程序构建 crypto++ 时出现链接器错误

c++ - 作为参数传递后无法计算数组元素

c++ - SIGALRM 终止进程

c++ - 条件运算符的奇怪使用

c# - 回调函数在构建和 DLL 时有何用处

c# - 连接到 C# 服务器的 C++ 套接字