Tuesday, November 23, 2010

poj_3981_ProblemC_字符串替换.cpp

Problem Links:

poj3981,

Problem:


字符串替换
Time Limit: 1000MSMemory Limit: 65536K
Total Submissions: 3931Accepted: 1933
Description
编写一个C程序实现将字符串中的所有"you"替换成"we"
Input
输入包含多行数据

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

Solution:

Straight forward.

Source Code:

//Tue Nov 23 14:10:28 CST 2010
#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <queue>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cctype>
#include <string>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>

using namespace std;

int main(int argc, const char* argv[])
{
    //  freopen("input.in", "r", stdin);
    //  freopen("output.out", "w", stdout);
    string str;
    while (getline(cin, str))
    {
        int sz = str.size();
        string ret = "";
        for (int i = 0; i < sz;)
        {
            if (str[i] != 'y')
            {
                ret += str[i];
                i++;
            }
            else
            {
                if (i + 2 < sz && str[i + 1] == 'o' && str[i + 2] == 'u')
                {
                    ret += "we";
                    i += 3;
                }
                else
                {
                    ret += str[i];
                    i++;
                }
            }
        }
        cout << ret << endl;
    }
    //  fclose(stdin);
    //  fclose(stdout);
    return 0;
}

No comments :