【问题标题】:Why does my program freezes at string::insert()?为什么我的程序在 string::insert() 处冻结?
【发布时间】:2016-03-30 18:09:24
【问题描述】:
void Obenglobish::work()
{
    for (int i = 0; i<word.length(); i++)
    {
        if (word[i] == 'a')
        {
            word.insert(i, "ob");
        }

    }
}

我的程序运行良好,直到它到达这个语句,我不确定我在这里做错了什么。

【问题讨论】:

  • 它找到a,在它之前插入'ob',再次找到a,插入......你得到了一个无限循环。
  • @Revolver_Ocelot 那是一个遮阳篷

标签: c++ string insert


【解决方案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;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多