First Version
Dependencies: EthernetInterface mbed-rtos mbed
Functions/Split.c@3:94a128e0f316, 2016-03-07 (annotated)
- Committer:
- rebonatto
- Date:
- Mon Mar 07 19:20:49 2016 +0000
- Revision:
- 3:94a128e0f316
- Parent:
- 0:9df41090ba33
Vers?o est?vel com nova forma de aquisi??o de valores e limpeza de c?digo desnecess?rio.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rebonatto | 0:9df41090ba33 | 1 | /* |
rebonatto | 0:9df41090ba33 | 2 | * Split.c |
rebonatto | 0:9df41090ba33 | 3 | * |
rebonatto | 0:9df41090ba33 | 4 | * Created on: 12/04/2012 |
rebonatto | 0:9df41090ba33 | 5 | * Author: francisco |
rebonatto | 0:9df41090ba33 | 6 | */ |
rebonatto | 0:9df41090ba33 | 7 | |
rebonatto | 0:9df41090ba33 | 8 | #include "Split.h" |
rebonatto | 0:9df41090ba33 | 9 | |
rebonatto | 0:9df41090ba33 | 10 | int split(char* str,char* delim,char*** ret ) |
rebonatto | 0:9df41090ba33 | 11 | { |
rebonatto | 0:9df41090ba33 | 12 | char *p = NULL; |
rebonatto | 0:9df41090ba33 | 13 | char *e = NULL; |
rebonatto | 0:9df41090ba33 | 14 | char **array = NULL; |
rebonatto | 0:9df41090ba33 | 15 | int qty = 0; |
rebonatto | 0:9df41090ba33 | 16 | int len = strlen(str); |
rebonatto | 0:9df41090ba33 | 17 | |
rebonatto | 0:9df41090ba33 | 18 | p = str; |
rebonatto | 0:9df41090ba33 | 19 | |
rebonatto | 0:9df41090ba33 | 20 | e = strstr(p,delim); |
rebonatto | 0:9df41090ba33 | 21 | |
rebonatto | 0:9df41090ba33 | 22 | while( e != NULL) |
rebonatto | 0:9df41090ba33 | 23 | { |
rebonatto | 0:9df41090ba33 | 24 | qty++; |
rebonatto | 0:9df41090ba33 | 25 | if(qty==1) |
rebonatto | 0:9df41090ba33 | 26 | array = (char**)malloc(sizeof(char*)*qty); |
rebonatto | 0:9df41090ba33 | 27 | else |
rebonatto | 0:9df41090ba33 | 28 | array = (char**)realloc(array,sizeof(char*)*qty); |
rebonatto | 0:9df41090ba33 | 29 | |
rebonatto | 0:9df41090ba33 | 30 | array[qty-1] = p; |
rebonatto | 0:9df41090ba33 | 31 | *e = '\0'; |
rebonatto | 0:9df41090ba33 | 32 | p = e + strlen(delim); |
rebonatto | 0:9df41090ba33 | 33 | e = strstr(p,delim); |
rebonatto | 0:9df41090ba33 | 34 | } |
rebonatto | 0:9df41090ba33 | 35 | if(p-str < len) |
rebonatto | 0:9df41090ba33 | 36 | { |
rebonatto | 0:9df41090ba33 | 37 | qty++; |
rebonatto | 0:9df41090ba33 | 38 | if(qty==1) |
rebonatto | 0:9df41090ba33 | 39 | array = (char**)malloc(sizeof(char*)*qty); |
rebonatto | 0:9df41090ba33 | 40 | else |
rebonatto | 0:9df41090ba33 | 41 | array = (char**)realloc(array,sizeof(char*)*qty); |
rebonatto | 0:9df41090ba33 | 42 | array[qty-1] = p; |
rebonatto | 0:9df41090ba33 | 43 | } |
rebonatto | 0:9df41090ba33 | 44 | |
rebonatto | 0:9df41090ba33 | 45 | *ret = array; |
rebonatto | 0:9df41090ba33 | 46 | return qty; |
rebonatto | 0:9df41090ba33 | 47 | } |