早教吧 育儿知识 作业答案 考试题库 百科 知识分享

题目-例题(12.8)单词替换C语言描述输入一个字符串,以回车结束(字符串长度

题目详情
题目 - 例题(12.8) 单词替换 C语言
描述
输入一个字符串,以回车结束(字符串长度<=100)。该字符串由若干个单词组成(单词都是英文字母组成),单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。
关于输入
输入包括3行:
第1行是包含多个单词的字符串 s
第2行是待替换的单词 a (长度<=100)
第3行是a将被替换的单词 b (长度<=100)
s, a, b 最前面和最后面都没有空格。
关于输出
输出只有 1 行:
将s中所有单词a替换成b之后的字符串。
如果s中单词a没有出现,则将s原样输出。
例子输入
You want someone to help you
You
I
例子输出
I want someone to help you
提示
可以用 gets() 函数来输入带空格的字符串。
可以用这个strcmp(字符串1,字符串2)函数来比较字符串是否相等。返回值是整数0表示相等
▼优质解答
答案和解析
#include
#include
#include
#define MAX 1000
#define LEN 20
void Input (char *a, char *b, char *c){
gets(a);
gets(b);
gets(c);
}
void Swap (char *str, char *FindWord, char *SwapWord){
int j,s,k,i=0,SwapWordLength,strLength,FindWordLength,n;
char *p1,*p2;
p1=str;
p2=FindWord;
strLength=strlen(str); //length of the original sentence
FindWordLength=strlen(FindWord); //length of the old word
SwapWordLength=strlen(SwapWord); //length of the new word
n=SwapWordLength-FindWordLength;
while(*p1!='\0'){
if((*p1==*p2)&&(!isalpha(*(p1-1)))) //isalpha : judge whether the char_c is an english word or not,if yes return !0,if no return 0
while((*p1==*p2)&&(*p2!='\0'))
{ p1++; p2++; i++; } //i: record how many chars has been read
else { p1++; i++; }
if((*p2=='\0')&&(isalpha(*p1)==0)){
//find the old word in the sentence
if(n<0){
j=i-FindWordLength; //j: beginning place
for(k=0; k str[j++]=SwapWord[k]; //str[j++]==str[j], j++
for(s=i; s str[j++]=str[s];
while(j str[j++]='\0';
strLength=strlen(str);
i+=n;
p1+=n;
}
else
{
for(s=strLength+n; s>i; s--)
str[s]=str[strLength--]; //str[strLength--]==str[strLength],strLength--
j=i-FindWordLength;
for(k=0; k str[j++]=SwapWord[k];
strLength=strlen(str);
i+=n;
p1+=n;
}
}
p2=FindWord;
}
}
void main(){
char sen[MAX],old[LEN],new[LEN];
Input(sen,old,new);
Swap(sen,old,new);
puts(sen);
}
看了题目-例题(12.8)单词替换...的网友还看了以下:

1、在以下关于C语言的叙述中,正确的说法是():(2分)A、C语言比汇编语言快B、C语言比FORTR  2020-03-30 …

周易略例.名象在线求翻译,尽快.谢谢夫象者,出意者也;言者,明象者也.尽意莫若象,尽象莫若言.言生  2020-06-20 …

下列各句中加点的“以”与例句中的“以”用法、意义相同的一项是()例:固以怪之矣A.及以至是,言不辱  2020-06-22 …

求名人名言以及事例有三个方面:1.自信、乐观2.勇气、毅力3.奋斗、拼搏*每个方面都要名人名言5句  2020-07-07 …

辘轳体诗是一种衔头接尾格的诗,可以像辘轳一样旋转而得诗,相传为宋代秦少游首创。下图中的13个字就可  2020-07-08 …

“读书可以塑造人的性格”的例子和名言警句(例子5~6个,名言警句8句)例子最重要!  2020-11-03 …

下列加点词的意义、用法与例句相近的一项是:例句:师者,所以传道受业解惑也。A.所以遣将守关者,备他盗  2020-11-22 …

名人谦虚做学问的名言事例?就是要写议论文要用到的举例论证写的是关于古今中外因为谦虚做学问而得以成名的  2020-12-02 …

诗三百还是诗三百篇论语里面诗三百,一言以蔽之,曰:“思无邪”还是诗三百篇,一言以蔽之,曰:“思无邪”  2020-12-22 …

“知荣辱,除陋习,树新风”的名言以及典型例子及其简析.关于此主题的中国名言,大约5条左右.例子两个即  2021-02-01 …