【NYOJ】[1112]字符串替换

文章字数:268

问题描述

问题分析

难点在于 you 为三个字符 而用来替换的 we 为两个字符 所以这里多用了一个字符来凑数 然后输出 时把它忽略就好了
对于空格的问题 使用了 gets 然后 EOF 使用!=NULL 这个在上次提到过的
其它就没什么了

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#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++里的特性
所以就暂且不讨论了
让我突然想起来了易语言的东西-.-

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#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;
}

题目地址:字符串替换

该内容采用 CC BY-NC-SA 4.0 许可协议。

如果对您有帮助或存在意见建议,欢迎在下方评论交流。

加载中...