设串采用静态数组存储结构,编写函数实现串的替换Replace(S,start,T,V)
答案:1 悬赏:80
解决时间 2021-02-17 15:15
- 提问者网友:记得曾经
- 2021-02-16 15:24
设串采用静态数组存储结构,编写函数实现串的替换Replace(S,start,T,V)
最佳答案
- 二级知识专家网友:何以畏孤独
- 2021-02-16 16:29
没心情去写, 所以在网上拷了个,调试过正常的#include
#include
#include int replace(char *s,int start,char *t,char *v)
{
char *getp=NULL,*kp,*kv;
int ret = 0;getp = strstr(&s[start],t);
if( getp )
{
int plen=strlen(getp),tlen=strlen(t),vlen=strlen(v); if( plen>tlen ) memmove(getp+vlen,getp+tlen,plen-tlen+1);
kp = getp, kv = v;
for(; *v ; ++v, ++getp ) *getp = *v;
if( plen==tlen ) *getp = 0;
replace(kp+vlen,0,t,kv);
ret = 1;
}return(ret);
} int main()
{
static char sstr[256];
char srcstr[32],dststr[32];while( gets(sstr) )
{
printf("t=");
gets(srcstr);
printf("v=");
gets(dststr);
if( replace(sstr,0,srcstr,dststr) ) printf("%s\n",sstr);
else printf("Not found sub string: %s\n",srcstr);
}return(0);
}
#include
#include
{
char *getp=NULL,*kp,*kv;
int ret = 0;getp = strstr(&s[start],t);
if( getp )
{
int plen=strlen(getp),tlen=strlen(t),vlen=strlen(v); if( plen>tlen ) memmove(getp+vlen,getp+tlen,plen-tlen+1);
kp = getp, kv = v;
for(; *v ; ++v, ++getp ) *getp = *v;
if( plen==tlen ) *getp = 0;
replace(kp+vlen,0,t,kv);
ret = 1;
}return(ret);
} int main()
{
static char sstr[256];
char srcstr[32],dststr[32];while( gets(sstr) )
{
printf("t=");
gets(srcstr);
printf("v=");
gets(dststr);
if( replace(sstr,0,srcstr,dststr) ) printf("%s\n",sstr);
else printf("Not found sub string: %s\n",srcstr);
}return(0);
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯