gpt4 book ai didi

c++ - 为什么我的程序在每次出现另一个字母后尝试插入一个字母时会崩溃?

转载 作者:行者123 更新时间:2023-11-28 00:51:23 25 4
gpt4 key购买 nike

仅此部分就使我的程序崩溃。这是为什么?这是在字符串中的每个'p'之后添加一个'u'。

for(int i=0;i<s.size();i++)
{
if((s[i]=='p'))
{
s.insert(i,1,'u');
}
}
cout<<"after adding u after each p: "<<s;

最佳答案

(你在代码中写了 'u' 而不是 'h'。)

假设您的字符串只是“p”。所以 s[0] == 'p'。现在你在 0 处插入 'h',所以字符串现在是 "hp"(h 在 p 之前,而不是你想要的在它之后)。在下一次迭代中,i 为 1 并且有一个 p(它刚刚移动到那里),因此将插入另一个 h。这种情况一直持续到内存不足。

尝试:

s.insert(i + 1, 1, 'h');

关于c++ - 为什么我的程序在每次出现另一个字母后尝试插入一个字母时会崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13896055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com