NYOJ 113 字符串替换

来源:互联网 发布:第三方支付系统源码 编辑:程序博客网 时间:2024/05/24 01:46

字符串替换

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

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

啧啧啧,我现在有点质疑自己的脑子了...

#include<stdio.h>#include<string.h>int main(){char b[10],s[1000],a[500][5];char w[]="you",e[]="you ";while(scanf("%s",b)!=EOF){        getchar();gets(s);    if(!strcmp(b,"you"))    printf("we ");elseprintf("%s ",b);int i,l;int j=0,k=0;l=strlen(s);for(i=0;i<l;i++){a[j][k]=s[i];k++;if(s[i]==' '){    j++;    k=0;}}for(i=0;i<=j;i++){if(!strcmp(a[i],e)){    printf("we ");    continue;}if(!strcmp(a[i],w)){    printf("we");    continue;}    printf("%s",a[i]);}printf("\n");}return 0;}
这是我自己写的,感觉没毛病,不知道为什么在for循环的把S的字符输进去就总会有毛病...后来看了别人的 发现算法比我的要简单很多很多...哭唧唧

#include<stdio.h>#include<string.h>int main(){int N,i;while(scanf("%d",&N)!=EOF){    char c[1000];    gets(c);    for(i=0;i<=strlen(c)-1;i++)    {        if(c[i]=='y'&&c[i+1]=='o'&&c[i+2]=='u')        {            printf("we");            i=i+3;        }        printf("%c",c[i]);    }    printf("\n");}return 0;}