Advertisement
Guest User

Untitled

a guest
Sep 25th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.52 KB | None | 0 0
  1. #include <string.h>
  2. #include <stdlib.h>
  3.  
  4. int
  5. strarr_size(char **arr, int len) {
  6.     int i = 0;
  7.     int size = 0;
  8.     while (i < len) {
  9.         size += sizeof(char)*strlen(arr[i]);
  10.         i++;
  11.     }
  12.     return size;
  13. }
  14.  
  15. int
  16. seqcount(char *str, char *seq) {
  17.     int count;
  18.     int seqlen = strlen(seq);
  19.  
  20.     int i = 0;
  21.     char *cmpstart;
  22.     while (i < strlen(str) && strlen(cmpstart)) {
  23.         char *cmp = malloc(sizeof(char)*seqlen);
  24.         cmpstart = str+i;
  25.         strncat(cmp, cmpstart, seqlen);
  26.  
  27.         if (strcmp(cmp, seq) == 0) {
  28.             count++;
  29.         }
  30.  
  31.         i++;
  32.     }
  33.  
  34.     return count;
  35. }
  36.  
  37. int
  38. strsplit(char *str, char *splseq, char **parts) {
  39.     int nparts = 0;
  40.     int c = 0;
  41.     int i = 0;
  42.  
  43.     int len = strlen(str);
  44.     int seqlen = strlen(splseq);
  45.  
  46.     char *splcmp;
  47.     char *cmpstart;
  48.  
  49.     char *part;
  50.     void *partptr;
  51.  
  52.     while (i < len) {
  53.         splcmp = (char *) malloc(sizeof(char)*strlen(splseq));
  54.         cmpstart = str+c;
  55.         strncat(splcmp, cmpstart, seqlen);
  56.  
  57.         int equal;
  58.  
  59.         if ((equal = strcmp(splcmp, splseq)) == 0 || i == len-1) {
  60.             partptr = malloc(sizeof(char)*(c+1));
  61.             if (partptr == NULL)
  62.                 return -1;
  63.             else
  64.                 part = partptr;
  65.  
  66.             strncat(part, str, c);
  67.             parts[nparts] = part;
  68.  
  69.             str += c+1;
  70.  
  71.             c = 0;
  72.             nparts++;
  73.         }
  74.  
  75.         i++;
  76.         c++;
  77.     }
  78.  
  79.     free(splcmp);
  80.     return nparts;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement