Ich benutze die Funktion strtok(), um eine Zeichenkette in Token aufzuteilen. Das Problem liegt vor, wenn es zwei Begrenzer in der Zeile gibt.Zeichenfolge in Token in C aufteilen, wenn zwei Begrenzer in einer Zeile vorhanden sind
/* strtok example */
#include <stdio.h>
#include <string.h>
int main()
{
char str[] ="Test= 0.28,0.0,1,,1.9,2.2,1.0,,8,4,,,42,,";
char * pch;
printf ("Splitting string \"%s\" into tokens:\n",str);
pch = strtok (str,", ");
while (pch != NULL)
{
printf ("Token = %s\n",pch);
pch = strtok (NULL, ", ");
}
return 0;
}
und Ausgänge:
Splitting string "Test= 0.28,0.0,1,,1.9,2.2,1.0,,8,4,,,42,," into tokens:
Token = Test=
Token = 0.28
Token = 0.0
Token = 1
Token = 1.9
Token = 2.2
Token = 1.0
Token = 8
Token = 4
Token = 42
Es gibt einige einfache Möglichkeit, alle Token bekommen, ich muss wissen, ob es etwas in Begrenzungszeichen ist Ursache gibt es Zeiten, die ich bekommen ,, oder, xxx,
Vielen Dank.
Wenn Sie auf einem System sind, das ['strsep'] hat (http://man7.org/linux/man-pages/man3/strsep.3.html), können Sie es stattdessen verwenden. –
Sie könnten [Ich brauche eine Mischung aus 'strtok()' und 'strtok_single()'] (http://stackoverflow.com/questions/30294129/i-need-a-mix-of-strtok-and- strtok-single) auch für Ideen. Es gibt viele Fragen von dort, die auch helfen könnten. Du bist nicht der erste, der solche Probleme hat. –