c语言的填空题,求帮忙啊以下程序的功能是将原old字符串中所有出现的sub子串处替换为rpl子串,其余不变,并将最终结果存入news中,请将程序补充完整.#includevoid main(){ char old[80],sub[80],rpl[80],*news
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/17 08:15:16
c语言的填空题,求帮忙啊以下程序的功能是将原old字符串中所有出现的sub子串处替换为rpl子串,其余不变,并将最终结果存入news中,请将程序补充完整.#includevoid main(){ char old[80],sub[80],rpl[80],*news
c语言的填空题,求帮忙啊
以下程序的功能是将原old字符串中所有出现的sub子串处替换为rpl子串,其余不变,并将最终结果存入news中,请将程序补充完整.
#include
void main()
{ char old[80],sub[80],rpl[80],*news,*s1,*s2;
gets(old);
gets(sub);
gets(rpl);
while( ? )
{ for(s1=old,s2=sub;*s1!='\0'&& ? ;s1++,s2++)
if(*s2!='\0')
*news++= ? ;
else
{ for(s2=rpl;*s2!='\0';s2++)
*news++= ? ;
? ;
}
}
*news='\0';
}
请问5处打问号的地方该填什么?
c语言的填空题,求帮忙啊以下程序的功能是将原old字符串中所有出现的sub子串处替换为rpl子串,其余不变,并将最终结果存入news中,请将程序补充完整.#includevoid main(){ char old[80],sub[80],rpl[80],*news
#include<stdio.h>
#include<string.h>
void replace(char *old,char *sub,char *rpl,char* &news)
{
char *s1=NULL,*s2=NULL,*p_bak=news;
while(*old!='\0')
{
for(s1=old,s2=sub;*s1!='\0'&&*s2!='\0'&&*s1==*s2;s1++,s2++)
continue;
if(*s2!='\0')
*news++=*old++;
else
{
for(s2=rpl;*s2!='\0';s2++)
*news++=*s2;
old=old+strlen(sub);
}
}
*news='\0';
news=p_bak;
}
void main(){
char old[80]="abcuvwabuv uvuvwx uvxw",sub[80]="uvw",rpl[80]="abcd";
int len = strlen(old)/strlen(sub)*strlen(rpl)+strlen(old)%strlen(sub)+1;
char *p = new char[len];
memset(p,0x00,len);
replace(old,sub,rpl,p);
printf("%s\n",p);
}