1
已解决
曹志
资深守护
资深守护
请帮我看一看哪里错了,谢谢!(发修改代码的意见)
#include<iostream> // 调用iostream同时也调用了string
using namespace std;
int main()
{
string a;
string x,y,t;
getline(cin,a);
cin>>x>>y;
int l=1e9,r=-1e9,len=a.size();
for(int i=0;i<len;i++)
{
l=1e9,r=-1e9; //l是单词的开头位置的下标,r是单词的末尾位置的下标
if(a[i]!=' ')
{
l=i,r=i+1;
while(a[r]!=' '&&r<len) r++; //确定单词的末尾下标
for(int j=l;j<=r;j++) //把获取的单词赋值给t
t+=a[j];
if(t==x) // 判断这个单词要不要替换
{
int k=0;
for(int j=l;j<=r;j++) //替换单词
{
a[j]=y[k];
k++;
}
}
i+=(l-r)+1;
l=1e9,r=-1e9;
}
}
cout<<a;
}
代码中外围的for产生了死循环