33,008
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>void delete_s(char *s,char *m) // 串的置换,将主串s中的t串,置换为v串
{
int i,k,po,sl,ml,j;
sl=strlen(s); ml=strlen(m);
printf("\n串s的长度是:=%d 串m的长度是:=%d\n",sl,ml);
po=0;
k=index(s,m,po);
if(k==-1)
printf("\n主串s中没有m字符串,原字符串不变");
else
{
while( po< sl-ml+1)
{
k=index(s,m,po); //调用串匹配函数,找到子串t在主串s的pos开始之后首次出现的位置
printf("\n k=%d",k);
for(i=0;i<ml;i++) { s[k-1]=s[k+ml-1];k++;}
sl=sl-ml;
po=po+ml;
}
}
}
void replace(char *s,char *t,char *v) // 串的置换,将主串s中的t串,置换为v串
{ int i,j,k,po,sl,tl;
sl=strlen(s); tl=strlen(t);
printf("\n串s的长度是:=%d 串t的长度是:=%d\n",sl,tl);
po=0;
k=index(s,t,po);
if(k==-1)
printf("\n主串s中没有t字符串,原字符串不变");
else
{
while( po< sl-tl+1)
{
k=index(s,t,po); //调用串匹配函数,找到子串t在主串s的pos开始之后首次出现的位置
printf("\n k=%2d",k);
i=k-1;
for(j=0;j<=tl-1;j++) { s[i]=v[j];i++;}
po=k+tl;
printf(" pos=%2d",po);
po++;
}
}
}
char *s,t[]="aaa",*m="abc";
char *s,t[]="sssabcsss",*m="abc";