char* repl1(char* ch1,char* ch2,char* ch3) //把字符串ch1中的ch2换中ch3 { int strl1=0,strl2=0,strl3=0,strl=0; int i=0,j=0,k=0,n=0,nn=0,m=0,temp=0; strl1=strlen(ch1); strl2=strlen(ch2); strl3=strlen(ch3); for (i=0;i<strl1;i++) { if (ch1[i]==ch2[0]) { k=i; j=0; while(j<=strl2-1) { if (ch1[k]!=ch2[j]) { --j; break; } j++; k++; } if (j>=strl2-1) { n++; //是用于计算有多少处是相同的字符或者字符串 } } } //printf("%d/n",n); strl=(strl1-n*strl2)+n*strl3+1; char* rep=(char*)malloc(strl); i=0; j=0; k=0; m=0; temp=0; nn=0; for (i=0;i<strl1;i++) { if (ch1[i]==ch2[0]) { k=i; j=0; while(j<=strl2-1) { if (ch1[k]!=ch2[j]) {printf("%c %c %d",ch1[k],ch2[j],k);getchar(); j--; break; } j++; k++; } if (j>=strl2-1) { for (j=0;j<strl3;j++) { rep[temp]=ch3[j]; temp++; } nn++; i+=(strl2-1); } else { rep[temp]=ch1[i]; temp++; } } else { rep[temp]=ch1[i]; temp++; } } rep[temp]='/0'; printf("%s/n",rep); free(rep); return 0; } 功能说明:把字符串1中的字符串2替换成字符串3 代码写好了就放在那儿了没有优化,试了几次,能成功,,,但是不知道有没有什么BUG!