NYOJ 113 字符串替换

来源:互联网 发布:fabric python 编辑:程序博客网 时间:2024/06/05 03:10

字符串替换

时间限制:3000 ms  |  内存限制:65535 KB
难度: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*/ 
结果是:






0 0
原创粉丝点击