nyoj113字符串替换(利用string类的简单方法)

36 阅读1分钟

题目:

字符串替换

时间限制: 3000 ms  |  内存限制: 65535 KB

难度: 2

    • 描述

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

        • 输入
        • 输入包含多行数据 

          每行数据是一个字符串,长度不超过1000 
          数据以EOF结束
        • 输出
        • 对于输入的每一行,输出替换后的字符串
        • 样例输入
        • you are what you do
          
        • 样例输出
        • we are what we do
          

代码:

\

//代码1:
# include <iostream>
# include <cstring>
using namespace std;

int main()
{
    string s;
    while(getline(cin, s))
    {
        int m = s.find("you");
        while(m != string::npos)
        {
            s[m] = 'w';
            s[m+1] = 'e';
            s.erase(s.begin() + m+2);
            m = s.find("you");
        }
        cout << s << endl;
    }
    return 0;
}
//代码2:
#include<iostream>
#include<string>
using std::string;
using std::cin;
using std::cout;
using std::endl;

int main()
{
    string str;
    while(true)
    {
        getline(cin, str);
        if(cin.eof()) break;
        int index;
        while(true)
        {
            index = str.find("you");
            if(index == string::npos) break;
            str.replace(index, 3, "we", 2);
        }
        cout<<str<<endl;
    }
//system("pause");
    return 0;
}

\

最优代码:

#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;
}



//一道样例,简单的用string类函数做一些字符串处理,存存代码。