题目来源:http://acm.nyist.net/JudgeOnline/problem.php?pid=113

字符串替换

时间限制:3000 ms  |  内存限制:65535 KB
难度:2
 
描述
编写一个程序实现将字符串中的所有"you"替换成"we"
 
输入
输入包含多行数据 

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

分析:
1:find(string&s, location) , 从 location 位置开始,在字符串中找子串s, 找到返回找到的第一个首字符位置,否则返回 string::npos。

2:replace(location, size, string &s) , 从location 位置开始, 数 size 个 数的 字符串, 用 字符串s 代替。
3: cin>>string s , 遇到空白结束输入 。 如果想输入一行, 则用 getline(cin, S).

代码如下:
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <iostream>
#include <vector>
#include<string>
#include<cstring>
#include<string.h>
#include<set>
#include<queue>
#include<stack>
#include<map>
using namespace std;
typedef long long LL;

int main()
{
    string s;

    while(getline(cin,s)) // 一行输入
    {
        int loc=s.find("you");
        while(loc != string::npos)      // 查找
        {
            s.replace(loc,3,"we");
            loc=s.find("you",loc+1);
        }
        cout<<s<<endl; // 一行输出
    }
    return 0;
}