Advertisement
Guest User

Untitled

a guest
Jun 24th, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.76 KB | None | 0 0
  1. char **tokenizal(const char *delim, const char *string){
  2.     char **t;
  3.     char *d1, *s1 = string, *st = string;
  4.     int n = 1, m = 0, i = 0, ok;
  5.    
  6.     while(*s1){
  7.         ok = 0;
  8.         d1 = delim;
  9.        
  10.         while(*d1 && !ok){
  11.             if(*s1 == *d1){
  12.                 ok = 1;
  13.                 n++;
  14.             }
  15.  
  16.             d1++;
  17.         }
  18.  
  19.         s1++;
  20.     }
  21.  
  22.     t = (char**)malloc((n+2) * sizeof(char*));
  23.     s1 = string;
  24.  
  25.     ok = 0;
  26.     i = 0;
  27.  
  28.     do{
  29.         d1 = delim;
  30.        
  31.         if(*s1){
  32.             while(*d1 && !ok){
  33.  
  34.                 if(*s1 == *d1)
  35.                     ok = 1;
  36.  
  37.  
  38.                 d1++;
  39.             }
  40.         } else ok = 1;
  41.  
  42.         if(ok){
  43.             char *tmp;
  44.             ok = 0;
  45.  
  46.             if(s1-st > 0){
  47.                 tmp = (char *)malloc(s1-st+1);
  48.                 t[i] = tmp;
  49.  
  50.                 while(st != s1) *tmp++ = *st++;
  51.  
  52.                 *tmp = 0;
  53.                 st++;
  54.  
  55.                 i++;
  56.             } else st++;
  57.         }
  58.     }while(*s1++);
  59.  
  60.     t[i] = NULL;
  61.  
  62.     return t;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement