将s所指字符串中最后一次出现的p所指子串全部替换成t所指子字符串,所形成的新串放在w所指的数组中。在此处,要求p和t所指字符串的长度相同。
例如:
s=”sabcdeabcfgabch”;
p=”abc”; t=”lht”;
变成:”sabcdeabcfglhth”;
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 100
void fun(char s[],char p[],char t[])
{
int count [N];
int slen=strlen(s);
int plen=strlen(p);
int i=0,j=0,k=0,l=0;
int tmp;
while (i<slen)
{
if (s[i]==p[j])
{
i++;
j++;
if (j==plen)
{
count[k++]=i-plen;
}
}
else{i=i-j+1;j=0;}
}
tmp=count[k-1];
for (l=0;l<plen;++l)
{
s[tmp++]=t[l];
}
}
void main()
{
char s[]="sabcdeabcfgabch";
char p[]="abc";
char t[]="lht";
fun(s,p,t);
printf("%s",s);
system("pause");
}