0
点赞
收藏
分享

微信扫一扫

NYOJ 113 字符串替换


字符串替换



3000 ms  |  内存限制: 65535



2



编写一个程序实现将字符串中的所有"you"替换成"we"

输入包含多行数据 


每行数据是一个字符串,长度不超过1000 


数据以EOF结束

输出 对于输入的每一行,输出替换后的字符串 样例输入

you are what you do

样例输出

we are what we do



/*题解:将字符串you替换为'w','e','\n'然后将“\n'剔除。*/

#include<stdio.h>
#include<string.h>
int main()
{
int i,js;
char str[1010];
while(gets(str))
{
js=strlen(str);
for(i=0;i<js-2;i++)
if(str[i]=='y'&&str[i+1]=='o'&&str[i+2]=='u')
{
str[i]='w';
str[i+1]='e';
str[i+2]='\n';
}
for(i=0;i<js;i++)
{
if(str[i]!='y'||str[i+1]!='o'||str[i+2]!='u')
{
if(str[i]=='\n')
continue;
printf("%c",str[i]);
}
}
printf("\n");
}
return 0;
}

优秀代码://s.replace(pos,len,str),s.find(s1);


#include<iostream>
using namespace std;
int main()
{
string s,s1 = "you",s2 = "we";
int flag;
while(cin>>s)
{
flag = s.find(s1);//返回s中找到第一个s1的下标
while(flag!=string::npos)
{
s.replace(flag,3,s2);
flag = s.find(s1,flag+1);
}
cout<<s<<endl;
}
return 0;
}

对replace的test:


#include<iostream>
using namespace std;
int main(){
string s,s1,s2;
s = "aaaaaaaaaa";
s1 = "bbb";
s2 = "cc";
cout<<s.replace(2,3,s1)<<endl;
cout<<s.replace(5,3,s2)<<endl;
} /*
若将cout<<s.replace(6,2,s2)<<endl;
改为cout<<s.replace(6,3,s2)<<endl;结果是aabbbacca
*/

结果是:


NYOJ 113 字符串替换_#include







举报

相关推荐

0 条评论