不知道为什么没有代码模式,只能这样复制给你了。也不知道你的T跟R字符串多少个字符,能不能用字符串库函数,程序里就假设它们相等了,没用到字符串库函数。
#include<stdio.h>
char str_compare(char *p1,char *p2);
void str_change(char *p1,char *p2);
char *p=0;
int main()
{
char SS[]="China American Russian Japan England Japan American",TT[]="American",RR[]="12345678";
char *ps=SS,*pt=TT,*pr=RR;
printf("原来字符串:");
for(;*ps!='\0';)
{
printf("%c",*ps);
ps++;
}
ps=SS;//指针复位
printf("\n");
for(;*ps!='\0';)
{
if(str_compare(ps,pt))
str_change(ps,pr);
ps++;
}
ps=SS;//指针复位
printf("替换后符串:");
for(;*ps!='\0';)
{
printf("%c",*ps);
ps++;
}
printf("\n");
return 0;
}
char str_compare(char *p1,char *p2)//判断字符串P1中是否含有字符串P2
{
int i=0;
for(;*p2!='\0';i++)
{
if(*p2!=*p1) return 0;
else
{
p2++;
p1++;
}
}
p=p1-i;//记录下有相同字符串的位置
return 1;
}
void str_change(char *p1,char *p2)//将字符串P2写入到P1中
{
p1=p;
for(;*p2!='\0';)
{
*p1=*p2;
p1++;
p2++;
}
}
2019-07-04 · IT职业教育领导品牌