POJ3981字符串替换

字符串替换问题
传送门:http://poj.org/problem?id=3981
Description

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

输入包含多行数据

每行数据是一个字符串,长度不超过1000
数据以EOF结束
Output

对于输入的每一行,输出替换后的字符串
Sample Input

you are what you do
Sample Output

we are what we do

//第一种遇到you直接输出we,其余的原样输出,最容易
//注意头文件为#include<stdio.h>才能用gets;
#include<stdio.h>
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
int main(){
    char str[1005];
    while(gets(str)!=NULL){
        int i=0;
        for(;str[i]!='\0';i++){
        if(str[i]=='y'&&str[i+1]=='o'&&str[i+2]=='u'){
                printf("we");
                i+=2;
            }
            else
                printf("%c",str[i]);
        }
        printf("\0");
        printf("\n");
    }
    return 0;
}
//第二种,用双指针遍历寻找you,和替换we
#include<iostream>
#include<cstdio>
#include<stdio.h>
using namespace std;
char c[1005];
int main(){
    int i,j;//循环变量定义在外面,走一次循环即可
    while(gets(c)!=NULL){
        for( i=0,j=0;c[i]!='\0';){
        if(c[i]=='y'&&c[i+1]=='o'&&c[i+2]=='u'){
             c[j++]='w';
             c[j++]='e';
                i+=3;  
            }
            else
                c[j++]=c[i++];}
               c[j]='\0';//字符串结束标志。
        printf("%s\n",c);
    }
    return 0;
}

//第三种利用字符串中的函数
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
using namespace std;
int main(){
    string str;
    int pos;
    while(getline(cin,str)){
        while((pos=str.find("you"))!=-1)
            str.replace(pos,3,"we");
            cout<<str<<endl;
        }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值