游客 Signup | Login
中文 | En

1530 - 单词替换0

输入一个字符串,以回车结束(字符串长度<=100)。该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。

Input

多组数据。每组数据输入包括3行,
第1行是包含多个单词的字符串 s,
第2行是待替换的单词a,(长度<=100)
第3行是a将被替换的单词b。(长度<=100)
s a b 最前面和最后面都没有空格。

Output

每个测试数据输出只有 1 行,
将s中所有单词a替换成b之后的字符串。

Examples

Input

I love Tian Qin
I
You

Output

You love Tian Qin

Solution C

#include<stdio.h>
#include<string.h>
int main()
{
	int i,count=0; 
	char  str[101][101];
	while(scanf("%s",str[count++])!=EOF)
	{
		char c;
		c=getchar();
		while(c!='\n')
		{scanf("%s",str[count++]);c=getchar();}
		char a[101],b[101];
		gets(a);
		gets(b);
		for(i=0;i<count;i++)
			if(strcmp(str[i],a)==0)     {if(i==count-1)  printf("%s",b);else printf("%s ",b);}
			else {if(i==count-1) printf("%s",str[i]); else printf("%s ",str[i]);}
		printf("\n");
		count =0;
	}
	return 0;
}

Solution C++

#include<stdio.h>
#include<string.h>

int main()
{
	char s[101],a[101],b[101],t[101];
	int i,k;
	while(gets(s))
	{
		gets(a);
		gets(b);
		for(k=i=0;i<=strlen(s);i++)
		{
			if(s[i]!=' '&&s[i]!='\0')
				t[k++]=s[i];
			else if(s[i]==' ')
			{
				t[k]='\0';
				if(!strcmp(a,t))
					printf("%s ",b);
				else
					printf("%s ",t);
				k=0;
			}
			else if(s[i]=='\0')
			{
				t[k]='\0';
				if(!strcmp(a,t))
					printf("%s\n",b);
				else
					printf("%s\n",t);
			}
		}
	}
	return 0;
}
Time Limit 1 second
Memory Limit 32 MB
Discuss Stats
上一题 下一题