Versão atual 13-12-2013.

Dependencies:   EthernetInterface mbed-rtos mbed

Committer:
rebonatto
Date:
Fri Dec 13 11:42:59 2013 +0000
Revision:
0:65c41a68b49a
Versao atual 13-12-2013.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rebonatto 0:65c41a68b49a 1 /*
rebonatto 0:65c41a68b49a 2 * Split.c
rebonatto 0:65c41a68b49a 3 *
rebonatto 0:65c41a68b49a 4 * Created on: 12/04/2012
rebonatto 0:65c41a68b49a 5 * Author: francisco
rebonatto 0:65c41a68b49a 6 */
rebonatto 0:65c41a68b49a 7
rebonatto 0:65c41a68b49a 8 #include "Split.h"
rebonatto 0:65c41a68b49a 9
rebonatto 0:65c41a68b49a 10 int split(char* str,char* delim,char*** ret )
rebonatto 0:65c41a68b49a 11 {
rebonatto 0:65c41a68b49a 12 char *p = NULL;
rebonatto 0:65c41a68b49a 13 char *e = NULL;
rebonatto 0:65c41a68b49a 14 char **array = NULL;
rebonatto 0:65c41a68b49a 15 int qty = 0;
rebonatto 0:65c41a68b49a 16 int len = strlen(str);
rebonatto 0:65c41a68b49a 17
rebonatto 0:65c41a68b49a 18 p = str;
rebonatto 0:65c41a68b49a 19
rebonatto 0:65c41a68b49a 20 e = strstr(p,delim);
rebonatto 0:65c41a68b49a 21
rebonatto 0:65c41a68b49a 22 while( e != NULL)
rebonatto 0:65c41a68b49a 23 {
rebonatto 0:65c41a68b49a 24 qty++;
rebonatto 0:65c41a68b49a 25 if(qty==1)
rebonatto 0:65c41a68b49a 26 array = (char**)malloc(sizeof(char*)*qty);
rebonatto 0:65c41a68b49a 27 else
rebonatto 0:65c41a68b49a 28 array = (char**)realloc(array,sizeof(char*)*qty);
rebonatto 0:65c41a68b49a 29
rebonatto 0:65c41a68b49a 30 array[qty-1] = p;
rebonatto 0:65c41a68b49a 31 *e = '\0';
rebonatto 0:65c41a68b49a 32 p = e + strlen(delim);
rebonatto 0:65c41a68b49a 33 e = strstr(p,delim);
rebonatto 0:65c41a68b49a 34 }
rebonatto 0:65c41a68b49a 35 if(p-str < len)
rebonatto 0:65c41a68b49a 36 {
rebonatto 0:65c41a68b49a 37 qty++;
rebonatto 0:65c41a68b49a 38 if(qty==1)
rebonatto 0:65c41a68b49a 39 array = (char**)malloc(sizeof(char*)*qty);
rebonatto 0:65c41a68b49a 40 else
rebonatto 0:65c41a68b49a 41 array = (char**)realloc(array,sizeof(char*)*qty);
rebonatto 0:65c41a68b49a 42 array[qty-1] = p;
rebonatto 0:65c41a68b49a 43 }
rebonatto 0:65c41a68b49a 44
rebonatto 0:65c41a68b49a 45 *ret = array;
rebonatto 0:65c41a68b49a 46 return qty;
rebonatto 0:65c41a68b49a 47 }