尝试从数组复制时出现分段错误(核心转储)错误

ME设计

试图将内容从 b 复制到 a 中,但有人告诉我这个错误,这意味着我正在尝试访问我不允许访问的内存,但我不知道该怎么做才能使其编译。

replace(txt , code);

string replace(string a , string b)
{
    string alpha[26] = {"abcdefghijklmnopqurstuvwxyz"};

    for (int i = 0; i < strlen(a); i++)
    {
        for(int n = 0; n < 26; n++)
        {
            if(a[i] == alpha[n])
            {
                a[i] = b[n];
                i++;
            }
        }
    }
    return word;
}

我是初学者,所以请不要对干净的编码或语法糖或类似的东西发表评论,这只能帮助我解决这个问题

THE_CHOODICK

看起来你在理解指针方面有一些问题,所以我建议你阅读它们。还可以考虑阅读您正在使用的 STL 中的数据类型和类型(因为 std::string 已经是一个值数组,所以当您创建 std::string[26] 时,实际上是在创建指向指针的指针)

我猜你正在尝试做这样的事情:

std::string replace(string a , string b)
{
    std::string alpha = {"abcdefghijklmnopqurstuvwxyz"};

    for (size_t i = 0; i < a.size(); ++i)
    {
        for(size_t n = 0; n < alpha.size(); ++n)
        {
            if(a[i] == alpha[n])
            {
                a[i] = b[n];
                i++; // Also, I think you doesnt need this line, cause you already incrementing i in for loop
            }
        }
    }
    return a;
}

你也用过strlen()你的字符串,这也不是真的正确,因为它用在 char 值上。如果您想获取字符串的长度,最好使用string.lenght()

此外,在这种情况下最好使用size_torunsigned int而不是int,因为您不需要负数来分割这些字符串。()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

创建线程时出现分段错误(核心转储)错误

执行代码时出现分段错误(核心转储)错误

尝试使用 (char**)malloc() 分配内存时出现分段错误(核心转储)

使用 apt 升级时出现分段错误(核心转储)

运行代码时出现核心转储/分段错误

使用ctypes传递2d numpy数组时出现分段错误(核心转储)

尝试启动 Spotify 时出现核心转储错误

尝试使用 strcpy 时出现核心转储错误

当图像来自 Pillow 时,尝试将 Qpixmap 设置为 Qlabel 时出现“分段错误(核心转储)”

使用2d数组时,为什么我的程序中出现分段错误(核心转储)错误?

核心转储分段错误

尝试将浮点数读入 C++ 中的链表时出现分段错误(核心转储)

strcmp 出现分段错误(核心转储)错误

创建链表会出现分段错误(核心转储)错误

声明int变量时出现分段错误(核心转储)错误

如何避免出现分段核心转储错误?

信号:分段错误(核心转储)错误

使用 pthread_create 时出现“分段错误(核心转储)”

使用ffmpeg并指定开始时间时出现分段错误(核心转储)

在 C、Linux 中递归列出目录和文件时出现分段错误(核心转储)

在分配了new []的阵列上使用avx时出现分段错误(核心转储)

在C中使用getchar()时出现分段错误(核心转储)?

进行分段时出现分段错误(核心已转储)

C 中的分段错误(核心转储) - 使用 PTHREADS 时

使用 fscanf 时 C 中的分段错误(核心转储)

使用动态2D数组时的C ++分段错误(核心转储)

fclose() 以“分段错误(核心转储)”结尾

OSMNx,分段错误(核心转储)

C - 获取分段错误(核心转储)