题目描述
编写一个程序实现将字符串中的所有"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,'.'); 读到句号结束。
-
有时候问题并不复杂,而是自己想复杂了。多学习+总结+回顾。