描述
输入一个字符串,以回车结束(字符串长度<=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
#include<stdio.h>
#include<string.h>
int main()
{
int i,len=0,n=0;
char s[101][101]={0},t[101]={0},a[101]={0},b[101]={0};
gets(t); //存储最开始的字符串
gets(a);
gets(b);
for(int i=0;i<strlen(t);i++) //将t的每个单词分别存入s中
{
if(t[i]==' ') //单词分隔
{
len++; //存放下一个单词,len的大小等于存放的单词数
n=0; //下一个单词要从0开始存放
}
else
{
s[len][n]=t[i]; //存放该单词的该个字符
n++;
}
}
for(int i=0;i<=len;i++) //此时有len+1个单词,len的大小等于单词数,从0~len
{
if(strcmp(s[i],a)==0) //找到单词a在s中的存放位置,位置为s[i]
{
strcpy(s[i], b); //将b拷贝到a的位置进行替换
}
}
for(int i=0;i<=len;i++) //输出替换后的字符串
{
if(i==0)
{
printf("%s", s[i]);
}
else printf(" %s", s[i]);
}
return 0;
}