求高手解答一下C语言题
题目描述输入一个字符串,以回车结束(字符串长度<=100)。该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,...
题目描述
输入一个字符串,以回车结束(字符串长度<=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 展开
输入一个字符串,以回车结束(字符串长度<=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 展开
2个回答
展开全部
#include<stdio.h>
#include<string.h>
#define N 100
void main()
{
char a[N],b[N],c[N];
int n,m,i,j;
printf("please in put a string:");
gets(a);
printf("please in put another:");
gets(b);
printf("please in put another:");
gets(c);
n=strlen(c);
m=strlen(b);
for(j=0;j<=N;j++)
{
if(a[j]==b[0])
break;
}
printf("%d",n);
for(i=0;i<n;i++)
a[i+j]=c[i];
for(i=n;i<m-n;i++)
a[i+j]=' ';
puts(a);
}
输入顺序为you want someone help you
you
I
上面的程序满足你的要求,但我必须说明它是有漏洞的,如果有其他要求我可以无偿帮你改进他。
#include<string.h>
#define N 100
void main()
{
char a[N],b[N],c[N];
int n,m,i,j;
printf("please in put a string:");
gets(a);
printf("please in put another:");
gets(b);
printf("please in put another:");
gets(c);
n=strlen(c);
m=strlen(b);
for(j=0;j<=N;j++)
{
if(a[j]==b[0])
break;
}
printf("%d",n);
for(i=0;i<n;i++)
a[i+j]=c[i];
for(i=n;i<m-n;i++)
a[i+j]=' ';
puts(a);
}
输入顺序为you want someone help you
you
I
上面的程序满足你的要求,但我必须说明它是有漏洞的,如果有其他要求我可以无偿帮你改进他。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <iostream.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char *input,*pre,*output,*post,*p;
input=(char*)malloc(100*sizeof(char));
pre=(char*)malloc(100*sizeof(char));
post=(char*)malloc(100*sizeof(char));
output=(char*)malloc(100*sizeof(char));
memset(output,0,100*sizeof(char));
cin.getline(input,100,'\n');
cin.getline(pre,100,'\n');
cin.getline(post,100,'\n');
p=strstr(input,pre);
if(p==NULL)
{
strcpy(output,input);
return 1;
}
while(p)
{
strncat(output,input,p-input);
strcat(output,post);
p+=strlen(pre);
input=p;
p=strstr(p,pre);
}
strcat(output,input);
cout<<output<<endl;
return 0;
}
#include <string.h>
#include <stdlib.h>
int main()
{
char *input,*pre,*output,*post,*p;
input=(char*)malloc(100*sizeof(char));
pre=(char*)malloc(100*sizeof(char));
post=(char*)malloc(100*sizeof(char));
output=(char*)malloc(100*sizeof(char));
memset(output,0,100*sizeof(char));
cin.getline(input,100,'\n');
cin.getline(pre,100,'\n');
cin.getline(post,100,'\n');
p=strstr(input,pre);
if(p==NULL)
{
strcpy(output,input);
return 1;
}
while(p)
{
strncat(output,input,p-input);
strcat(output,post);
p+=strlen(pre);
input=p;
p=strstr(p,pre);
}
strcat(output,input);
cout<<output<<endl;
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |