My Carelessness

Back to your page!


Or leave your comments here.

RegendLa

导航

单词替换

Q:单词替换

总时间限制:

1000ms

内存限制:

65536kB

描述

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

输入

输入包括3行,
第1行是包含多个单词的字符串 s;
第2行是待替换的单词a(长度 <= 100);
第3行是a将被替换的单词b(长度 <= 100).

s, a, b 最前面和最后面都没有空格.

输出

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

样例输入

You want someone to help you
You
I

样例输出

I want someone to help you

S:
#include<stdio.h>
#include<string.h>
int main()
{
	char s[105],a[101],b[101];
	char temp[101];
	int i,j,len;
	//freopen("6.in","r",stdin); 
	gets(s);
	gets(a);
	gets(b);
	len=strlen(s);
	j=0;
	for(i=0;i<len;i++)
	{
		if(s[i]!=' ')//将非空格的字符接受至临时空间 
		{
			temp[j]=s[i];
			j++;
			temp[j]='\0';
			//用于截止单词,防止越界,输出上一个单词的未替换部分 
		}
		else//遇到空格时,比较a与temp 
		{
			temp[j]='\0';//为输出时的系统检测 
			if(strcmp(temp,a)==0)//相同时,替换 
			{
				printf("%s ",b); 
			}
			else if(s[i-1]!=' ')//不同时,输出原词 
			{
				printf("%s ",temp);
			}
			else if(s[i-1]==' ')//遇到连续空格时,直接输出空格 
				printf(" ");
			j=0;//临时空间下标清零 
		}
	}//处理最后一词
	if(strcmp(temp,a)==0)//相同时,替换 
	{
		printf("%s ",b); 
	}
	else if(s[i-1]!=' ')//不同时,输出原词 
	{
		printf("%s ",temp);
	}
	else if(s[i-1]==' ')//遇到连续空格时,直接输出空格 
		printf(" ");
	printf("\n");
	return 0;
}

 









posted on 2015-01-29 09:51  最爱七  阅读(366)  评论(0编辑  收藏  举报




Thanks for your coming!
If what you read helps,I would appreciate!