难点在于 you 为三个字符 而用来替换的 we 为两个字符 所以这里多用了一个字符来凑数 然后输出时把它忽略就好了
对于空格的问题 使用了 gets 然后 EOF 使用!=NULL 这个在上次提到过的
其它就没什么了
#include<stdio.h>
#include<string.h>
int main() {
char s[1020];
while(gets(s)!=NULL) {
int l=strlen(s);
for(int i=0; i<l; i++) {
if(s[i]=='y'&&s[i+1]=='o'&&s[i+2]=='u') {
s[i]='w';
s[i+1]='e';
s[i+2]='0';
}
}
for(int i=0; i<l; i++) {
if(s[i]!='0')
printf("%c",s[i]);
}
printf("
");
}
return 0;
}
标程用了C++里的特性
所以就暂且不讨论了
让我突然想起来了易语言的东西-.-
#include<algorithm>
#include<iostream>
#include<string>
using namespace std;
int main() {
string s, s1, s2;
while(getline(cin,s)) {
int flag;
s1 = "you";
s2 = "we";
flag = s.find(s1,0);
while(flag != string::npos) {
s.replace(flag, 3, s2);
flag = s.find(s1, flag + 1);
}
cout << s << endl;
}
return 0;
}
题目地址:【NYOJ】[113]字符串替换