NYOJ 113 字符串替换

本文介绍了一个简单的字符串替换程序,用于将输入字符串中的特定词汇进行替换。提供了两种不同的实现方式,一种较为复杂,另一种则更为简洁高效。

字符串替换

时间限制: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 ");
		else
			printf("%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;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值