[蓝蓝计算机考研算法]-day12字符串替换

127 阅读1分钟

题目描述

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

输入描述

输入包含多行数据,每行数据是一个字符串,长度不超过1000,数据以EOF结束。

输出描述

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

思路

  • 用字符数组存储输入的字符串,并定义字符串长度,为遍历使用。

  • 在for循环中遍历每个字符,如果第i个和i+1个和i+2个等于分别等于'y'、'o'、'u',则输出"we",并将下标前进2个单位,继续循环。

  • 若不等于you,则直接输出当前字符。

具体实现

#include<bits/stdc++.h>
using namespace std;
int main(){
	char s[100];
	while(gets(s)){
		int ls = strlen(s);
		for(int i=0; i<ls; i++){
			if(s[i]=='y' && s[i+1]=='o' && s[i+2]=='u') {
				cout<<"we";
				i+=2;
			}
			else cout<<s[i];
		}
	}
	return 0;
} 

小结

  • 字符串替换,不一定非要将新的替换掉原来的,也可以直接输出自己想要的,再继续循环。

  • gets读入字符数组,且读到换行时结束。

  • getline是读string类型字符串,且可以读到你指定的字符结束,例getline(cin,s,'.'); 读到句号结束。

  • 有时候问题并不复杂,而是自己想复杂了。多学习+总结+回顾。