题目1159: 单词替换

题目描述

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

 

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

 

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

 

样例输入
I love Tian Qin
I
You
 

样例输出
You love Tian Qin
 

提示 [+]

*** 提示已隐藏,点击上方 [+] 可显示 ***

 

来源

2007年北京大学计算机研究生机试真题

 


/*********************************
*   日期:2013-4-5
*   作者:SJF0115
*   题号: 题目1159: 单词替换
*   来源:http://acmclub.com/problem.php?id=1159
*   结果:AC
*   来源:天勤OJ
*   总结:
**********************************/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main ()
{
	int i,j,index,len,len2;
	char str[101],word[101],newword[101],temp[101];
	//freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin);  
	while(gets(str)){
		index = 0;
		len = strlen(str);
		scanf("%s",word);
		scanf("%s",newword);
		for(i = 0;i <= len;i++){
			if(str[i] == ' ' || i == len){
				temp[index] = '\0';
				if(strcmp(temp,word) == 0){
					printf("%s",newword);
				}
				else{
					printf("%s",temp);
				}
				if(str[i] == ' '){
					printf(" ");
				}
				else{
					printf("\n");
				}
				index = 0;
				memset(temp,0,sizeof(temp));
			}
			else{
				temp[index++] = str[i];
			}
		}
		getchar();
	}
	return 0;
}

	


你可能感兴趣的:(北大,复试上机)