以下程序所列函数 replace(char *s1,char *s2,char str1,char *str2)的功能是将已知字符串 s1 中
的所有与字符串 str1 相同(2)的子串替换成字符串 str2,并将替换后所生成的新的字符串
存于字符数组 s2 中。
说明:生成字符串 s2 的过程是一个循环,顺序访问字符串 s1 的每个字符(1);当从某个
字符开始不能构成与 str1 相同的子字符时,就把该字符拷贝到数组 s2(3),当从某个字符开
始能构成一个与 str1 相同的子字符串时,就将字符串 str2 的各字符拷贝到字符数组 s2,并
继续访问字符串 s1 中那个子串之后的字符,直至字符串 s1 被访问完毕,字符复制即告结束。
#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
void replace(char *s1,char *s2,char *str1,char *str2)
{ char *t0,*t1,*t2;
while(*s1!='\0')
{
for(t0=s1,t1=str1;*t1!='\0' && *t0==*t1 ; t0++,t1++);
if(*t1!='\0')
*s2++= *s1++; //字符串
else {
for(t1=str2;*t1!='\0';)
*s2++=t1++;
s1=t0;
}
}
*s2='\0';
printf("%s",s2);
}
int main()
{ char s1[]="abcdefg ababcd abab.";
char s2[80];
replace(s1,s2,"abc","ABCXYZ");
}