为什么我的程序冻结在string :: insert()?

时间:2016-03-30 18:09:24

标签: c++ string insert

void Obenglobish::work()
{
    for (int i = 0; i<word.length(); i++)
    {
        if (word[i] == 'a')
        {
            word.insert(i, "ob");
        }

    }
}

我的程序运行正常,直到达到此声明,我不确定我在这里做错了什么。

1 个答案:

答案 0 :(得分:1)

如果您打算用“ob”替换“a”的所有实例,请考虑使用string::replace

如果要在“a”的所有实例之前插入“ob”,则需要通过将插入文本的长度增加来修改循环变量(在本例中为2)。

for (int i = 0; i < word.length(); i++) 
{
    if (word[i] == 'a')
    {
        word.insert(i, "ob");
        i += 2;
    }
}
相关问题