#include <iostream> using std::cout; using std::endl; char *delstr(char*a,char*b) { char*st=a,*s2,*s1; while (*st&&*b) { s1=st; s2=b; while (*s1&&*s2&&!(*s1-*s2)) s1++,s2++; if (!*s2) { while (*st++=*s1++); st=a; //st-=1; } st++; } return (a); } int main() { char a[]="dbcnnnabbcdrrrbcfffbc"; cout<<delstr(a," "); system("pause"); return 0; }
删除中间前后组成的b保留
char *delstr(char*a,char*b) { char*st=a,*s2,*s1; int n=0; bool bl=1; while (*st&&*b) { s1=st; s2=b; while (*s1&&*s2&&!(*s1-*s2)) s1++,s2++; if (!*s2) { while (*st++=*s1++); st=a+n; } n++; st++; } return (a); }