Guest User

Untitled

a guest
Jan 21st, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.24 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. // start Nicks Hilfsmethoden
  4.  
  5. char *BCX_TmpStr(size_t Bites) {
  6.     static int StrCnt;
  7.     static char *StrFunc[64];
  8.     StrCnt = (StrCnt + 1) & 63;
  9.     free(StrFunc[StrCnt]);
  10.     return StrFunc[StrCnt] = (char*) calloc(Bites + 256, 1);
  11. }
  12.  
  13. char *replace(char *src, char *pat, char *rep) {
  14.     size_t patsz, repsz, tmpsz, delta;
  15.     char *strtmp, *p, *q, *r;
  16.     if (!src)
  17.         src = "";
  18.     if (!pat || !*pat) {
  19.         strtmp = BCX_TmpStr(strlen(src));
  20.         if (!strtmp)
  21.             return NULL;
  22.         return strcpy(strtmp, src);
  23.     }
  24.     if (rep == NULL)
  25.         rep = "";
  26.     repsz = strlen(rep);
  27.     patsz = strlen(pat);
  28.     for (tmpsz = 0, p = src; q = strstr(p, pat); p = q + patsz)
  29.         tmpsz += (size_t) (q - p) + repsz;
  30.     tmpsz += strlen(p);
  31.     strtmp = BCX_TmpStr(tmpsz);
  32.     if (!strtmp)
  33.         return NULL;
  34.     for (r = strtmp, p = src; q = strstr(p, pat); p = q + patsz) {
  35.         delta = (size_t) (q - p);
  36.         strncpy(r, p, delta);
  37.         r += delta;
  38.         strcpy(r, rep);
  39.         r += repsz;
  40.     }
  41.     strcpy(r, p);
  42.     return strtmp;
  43. }
  44.  
  45. // end Nicks Hilfsmethoden
  46.  
  47. int main(int argc, char *argv[]) {
  48.  
  49.     char* x = "wtf,halhalo,halo";
  50.  
  51.     char a[4096];
  52.     strcpy(a, x);
  53.     printf("%s\n", x);
  54.  
  55.     strcpy(a, (char*) replace(a, ",", "."));
  56.  
  57.     x = a;
  58.  
  59.     printf("%s\n", x);
  60.     return 0; //  End of main program
  61. }
Add Comment
Please, Sign In to add comment