C++ 进程被终止。完成此操作需要12000ms以上的时间

C++ 进程被终止。完成此操作需要12000ms以上的时间,c++,c++11,C++,C++11,创建一个函数,将每个“i”转换为“wi”,将“e”转换为“we”,并在末尾添加“owo” 我正在为上述问题创建函数,但收到一个错误: 进程被终止。完成此操作需要12000ms以上的时间 谁能帮我修理一下吗 #包括 std::string owofied(std::string语句){ int pos=0; 对于(inti=0;i您的代码将“e”转换为“we”。但随后它将“we”中的“e”转换为“we”,从而创建另一个也被替换的“we” 一个简单的解决方法是在替换后额外增加i。当您插入wi或we时

创建一个函数,将每个“i”转换为“wi”,将“e”转换为“we”,并在末尾添加“owo”

我正在为上述问题创建函数,但收到一个错误:

进程被终止。完成此操作需要12000ms以上的时间

谁能帮我修理一下吗

#包括
std::string owofied(std::string语句){
int pos=0;
对于(inti=0;i您的代码将“e”转换为“we”。但随后它将“we”中的“e”转换为“we”,从而创建另一个也被替换的“we”


一个简单的解决方法是在替换后额外增加
i

当您插入
wi
we
时,您不会在替换后增加
i
,因此下一次迭代会发现新的
i
//code>并替换它,依此类推,直到代码或tIME内存不足或耗尽

请尝试以下方法:

#包括
std::string owofied(std::string语句)
{
std::string::size_type i=0;
而(我<句子大小())
{
如果(句子[i]=“i”)
{
替换(i,1,“wi”,2);
i+=2;
}
else if(句子[i]=“e”)
{
替换(i,1,“我们”,2);
i+=2;
}
否则{
++一,;
}
}
返回句子+owo;
}
通过使用查找要替换的字符,可以稍微简化这些字符,例如:

#包括
std::string owofied(std::string语句)
{
std::string::size_type i=0;
字符替换[2]={w','?'};
while((i=句子。首先查找(“ie”,i,2))!=std::string::npos)
{
替换[1]=第[i]句;
替换(i,1,替换,2);
i+=2;
}
返回句子+owo;
}
或者,由于“替换”实际上只是
w
的“插入”:

#包括
std::string owofied(std::string语句)
{
std::string::size_type i=0;
while((i=句子。首先查找(“ie”,i,2))!=std::string::npos)
{
句子.插入(i,1,'w');//或:句子.插入(i,'w',1);
i+=2;
}
返回句子+owo;
}

从句子“i”开始,用调试器逐步调试,看看会发生什么。将
do{}while()
替换为
while((i=句子。首先查找((ie),i,2))!=std::string::npos)
消除了对
while的不满(true)
,清楚地指示循环结束的条件,避免从循环中间中断
并且稍微短一点。@好的一点,我已经更新了我的示例。我通常不在
if
while
语句中做作业。