字符替代问题
#include<stdio.h>#include<string.h>
int main()
{
int i=0,k;
int str2_len,str3_len;
int equal_n=0;
char str1[100];
char str2[100];
char str3[100];
char str4[100]="0";
char *p1=str1;
char *p2=str2;
char *p3=str3;
gets(str1);
gets(str2);
gets(str3);
str2_len=strlen(str2);
str3_len=strlen(str3);
while(*p1)
{
while(*p2&&*p1&&*p1!=*p2)
str4[i++]=*p1++;
while(*p1==*p2&&*p2)
{
p1++;
p2++;
equal_n++;
}
if(equal_n==str2_len)
{ strcat(str4,str3); i=i+str3_len; }
else
{ for(k=0;k<equal_n;k++)
{str4[i++]=*p3++;}
i=i+equal_n;
}
p3=str3;
equal_n=0;
}
puts(str4);
return 0;
}
为什么输入 abc ab c 没有反应额?其他貌似都好的。