C ++字符串“插入”函数在多次运行时崩溃应用程序

时间:2012-03-30 12:30:41

标签: c++ string insert

我的程序有问题。当它运行时:

P.insert(P.find('-'), "+");

一旦一切正常(该功能完成了我想要的,在减号之前加上加号)。但是当我再次运行时,它会以“此应用程序请求运行时以不寻常的方式终止”来破解。错误。
“P”(大写)当然是String var 如果你问,我使用wxDev-C ++ build 7.4.1.13并且不想改变它。 Windows 7旗舰版32位系统。

请在截止日期前快速重播。

2 个答案:

答案 0 :(得分:4)

也许第二次没有' - ',所以找到返回-1,然后你尝试插入位置-1。所以检查find的返回值

int index = P.find('-');
if (index != -1)
    P.insert(index, '+');

我同意 Dennis 评论..

答案 1 :(得分:0)

您的代码只会替换为第一次出现“ - ”。 这是你的要求吗?

如果没有,请点击

int start = 0;
while (true) {
  int index = P.find('-', start);
  if (index < 0) break;
  P.insert(index, '+');
  start = index + 2;
}