Итак, мой код в настоящее время разбивает единственную строку, подобную этой: «hello world» на:
hello
world
Но когда у меня есть несколько пробелов между ними, до или после строки, мой код не работает. Он занимает это пространство и считает его словом/числом для анализа. Например, если я поставлю два пробела между hello и world, мой код выдаст:
hello
(a space character)
world
Пробел фактически считается словом/токеном.
int counter = 0;
int index = strcur->current_index;
char *string = strcur->myString;
char token_buffer = string[index];
while(strcur->current_index <= strcur->end_index)
{
counter = 0;
token_buffer = string[counter+index];
while(!is_delimiter(token_buffer) && (index+counter)<=strcur->end_index)//delimiters are: '\0','\n','\r',' '
{
counter++;
token_buffer = string[index+counter];
}
char *output_token = malloc(counter+1);
strncpy(output_token,string+index,counter);
printf("%s \n", output_token);
TKProcessing(output_token);
//update information
counter++;
strcur->current_index += counter;
index += counter;
}
Я вижу проблемную область в своем цикле, но я немного не понимаю, как это исправить. Любая помощь будет оценена по достоинству.
do something with your tokenized word
комментарий как//do something with your tokenized word
. Хотя это не имеет большого значения. 29.06.2015strtok
29.06.2015strtok_r()
соответствует стандарту POSIX.1-2001. 29.06.2015