关于一道C语言的填空题目

关于一道C语言的填空题目16.下列程序中函数find_replace的功能是:在s1指向的字符串中查找s2指向的字符串,并用s3指向的字符串替换在s1中找到的所有s2字符... 关于一道C语言的填空题目
16.下列程序中函数find_replace的功能是:在s1指向的字符串中查找s2指向的字符串,并用s3指向

的字符串替换在s1中找到的所有s2字符串。若sl字符串中没有出现s2字符串,则不做替换并使

函数返回0,否则函数返回1。试完善程序以达到要求的功能。

#include

#include

int find_replace(char s1[],char s2[],char s3[])

{ int i,j,k,t=0; char temp[80];

if(s1[0]=='\0'||s2[0]=='\0')return t;

for(i=0;s1!='\0';i++)

{ k=0; j=i;

while(s1[j]==s2[k]&&s2[k]!='\0')

{ j++;

___(23)_________

}

if(s2[k]=='\0')

{ strcpy(temp,&s1[j]);

___________(24)________;

i=i+strlen(s3);

_______(25)_________;

t=1;

}

}

return t;

}

void main()

{char line[80]="This is a test program and a test data.";

char substr1[10]="test",substr2[10]="actual";

int k;

k=find_replace(line,substr1,substr2);

if(______(26)_______)

puts(line);

else

printf("not found\n");

}
答案和解释
展开
 我来答
hanjing5570
2011-03-10 · 超过18用户采纳过TA的回答
知道答主
回答量:26
采纳率:0%
帮助的人:43.9万
展开全部

23 k++;   //因为这段是拿s1中下标为j的与s2中下标为k的字符比较,当相等比较下一个字符,j++了,k也要移到下一个位置。

24 strcpy(&s1[i],s3);

25 strcat(s1,temp);

//这一段解释比较困难,我用两张图解释吧(另一张在另一回答里,注画的不是很完整,'\0'我也没画了,相信你能看得懂

26 k==1

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式