字符串替换
时间限制:3000 ms | 内存限制:65535 KB
难度:2
描述
编写一个程序实现将字符串中的所有"you"替换成"we"
输入
输入包含多行数据
每行数据是一个字符串,长度不超过1000
数据以EOF结束
输出
对于输入的每一行,输出替换后的字符串
样例输入
you are what you do
样例输出
we are what we do
来源
水题比赛
上传者
hzyqazasdf
代码1:
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
char ch[1200];
while(gets(ch))
{
int c=strlen(ch);
for (int i=0;i<c;i++)
if (ch[i]=='y'&&i<c-2&&ch[i+1]=='o'&&ch[i+2]=='u')
{
printf("we");
i+=2;
}
else
printf("%c",ch[i]);
printf("\n");
}
return 0;
}
代码2:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
string ch,chl="we";
getline(cin,ch);
while (ch!="")
{
int c=ch.size();
for (int i=0;i<c-3;i++)
if (ch[i]=='y'&&ch[i+1]=='o'&&ch[i+2]=='u')
{
ch.replace(ch.begin()+i,ch.begin()+i+3,chl.begin(),chl.end());
}
c=ch.size();
for (int i=0;i<c;i++)
printf("%c",ch[i]);
printf("\n");
getline(cin,ch);
}
return 0;
}
代码3:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
string ch,chl="we";
getline(cin,ch);
while (ch!="")
{
int c=ch.size();
string::size_type it;
it=ch.find("you");
while (it<c)
{
// printf("%d 66\n",it);//替换后字符长度会自动收缩。。
ch.replace(ch.begin()+it,ch.begin()+it+3,chl.begin(),chl.end());
it=ch.find("you");
}
c=ch.size();
/* for (int i=0;i<c;i++)
printf("%c",ch[i]);
printf("\n");*/
cout<<ch<<endl;
getline(cin,ch);
}
return 0;
}