Lösche alle Vorkommen einer gesuchten Zeichenfolge in einer vorgegebenen Zeichenfolge.
//Lösche alle! Vorkommen eines Strings in einem vorgegeben String // rekursive Lösung / richard@borwinius.de 2011 // strdel.exe meinTestStringTestblaTestdoedel Test #include <stdio.h> #include <stdlib.h> #include <string.h> //---------------------------------------------------- char *StrDel(char *str,char *pat) { register unsigned int lenpat,lenptr,lenstr,i=0; char *ret = 0; char *ptr = 0; ptr = strstr(str, pat); if (ptr == NULL) { free(ret); free(ptr); return (char*)str; } else { lenstr = strlen(str); lenpat = strlen(pat); lenptr = strlen(ptr); ret = (char*) calloc((lenstr+1),sizeof(char)); for (i=0;i<lenstr-lenptr;i++) { ret[i] = str[i]; } ptr+=lenpat; strcat(ret,ptr); ret = StrDel(ret,pat); //Rekursion return ret; } free(ptr); return ret; } //---------------------------------------------------- int main(int argc, char *argv[]) { char *back = 0; if (argc != 3) { printf("usage: strdel MeinTestStringTestxy Test"); } else { back = StrDel(argv[1],argv[2]); printf("back %s\n",back); } return 0; } //----------------------------------------------------