我的程序有问题。当它运行时:
P.insert(P.find('-'), "+");
一旦一切正常(该功能完成了我想要的,在减号之前加上加号)。但是当我再次运行时,它会以“此应用程序请求运行时以不寻常的方式终止”来破解。错误。
“P”(大写)当然是String var
如果你问,我使用wxDev-C ++ build 7.4.1.13并且不想改变它。 Windows 7旗舰版32位系统。
请在截止日期前快速重播。
答案 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;
}