GitBook

这里写图片描述

难点在于 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("\n");
	}
	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]字符串替换