#include<stdio.h>
#include<string.h>
char* myStrtok_origin(char* str_arr,const char* delimiters,char**temp_str)
{
char*b_temp;
if(str_arr == NULL)
{
str_arr =*temp_str;
}
if(*str_arr =='\0')
{
return NULL;
}
b_temp = str_arr;
str_arr = strpbrk(str_arr, delimiters);
if(str_arr == NULL)
{
*temp_str = strchr(b_temp,'\0');
}
else
{
*str_arr ='\0';
*temp_str = str_arr +1;
}
return b_temp;
}
char* myStrtok(char* str_arr,const char* delimiters)
{
static char*last;
return myStrtok_origin(str_arr, delimiters,&last);
}
int main(void)
{
char buf[]="063416.40,3143.2951,N,11713.0655,E,0.6,224.9,2,,17.6,9.5,110620,07";
char*temp_str = NULL;
char*str = myStrtok_origin(buf,",",&temp_str);
int i=0;
while(str)
{
printf("str[%d]:%s\r\n",i++,str);
str = myStrtok_origin(NULL,",",&temp_str);
}
return 0;
}