【NYOJ】[113]字符串替换

这里写图片描述

难点在于 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]字符串替换

原文地址:https://www.cnblogs.com/BoilTask/p/12569846.html