单词替换

匿名 (未验证) 提交于 2019-12-03 00:26:01

题目描述

输入一个字符串,以回车结束(字符串长度<=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

先gets输入第一行,然后把每个单词依次存在二位字符数组里(不直接用scanf存,是因为空格换行都可以作为scanf的结束标志,它可以把下一行的字符也存进去),然后再输出。输出时strcmp判断,为0,则替换。

#include<cstdio> #include<cstring>  int main() {     char s[110];     while (gets_s(s) != NULL) {         char ans[110][110];         char a[110], b[110];         scanf("%s %s", a, b);         int i = 0, j = 0, k = 0;         while (s[i] != '\0') {             if (s[i] != ' ') ans[j][k++] = s[i];             else   ans[j][k] = '\0', k = 0, j++;  //这种一位位赋值的,一定要有字符串结束标志             i++;         }         ans[j][k] = '\0';  //最后一个字符串的结束标志         for (i = 0; i <= j; i++) {             if (strcmp(ans[i], a) == 0) printf("%s", b);             else printf("%s", ans[i]);             if (i != j) printf(" ");         }         printf("\n");         getchar();  //你要输入下一组,因为是gets输入第一行,所以必须要getchar()接受换行符     }     return 0; }
文章来源: 单词替换
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!