strtok

Gast #547655
Lesenswert?

Moin,

es folgt ein Beispielcode für die strtok-Funktion:
1
int i = 1;
2
char String[] = "Hallo;du,schöne#Welt";
3
char* pToken = strtok(String, ";,#");
4
if (pToken)
5
{
6
    printf("Token%d: %s\n", i,pToken);
7
    i++;
8
    while ( (pToken = strtok(NULL, ";,#")) )
9
    {
10
        printf("Token%d: %s\n", i,pToken);
11
        i++;
12
    }
13
}

Ich benutze die Funktion auf ähnliche Weise, nur dass ich anstatt der 
printf-Anweisung 15 if-Abfragen durchführe, ob der Token einem der 15 
Strings entspricht (mittels strncmp).

Ich muss also im Moment die 15 if-Anweisungen sowohl nach if (pToken){ 
...
als auch in der while-Schleife einfügen.

Das sieht mir etwas ungeschickt aus. Ich habe überlegt ob es eine 
Möglichkeit gibt, direkt in die while-Schleife einzusteigen, damit ich 
die 15 Abfragen nur einmal coden muss, habe aber nichts gefunden. Habt 
ihr eine Idee?

Gruß

TechInfo
#547690
Lesenswert?

Erstens, wie schon angesprochen, die Auslagerung in
eine Funktion.

Und zweitens machst du das Schleifenkonstrukt mal etwas
lesbarer:
1
  int i = 1;
2
  char String[] = "Hallo;du,schöne#Welt";
3
  char* pToken = strtok(String, ";,#");
4

5
  while( pToken ) {
6
    printf("Token%d: %s\n", i,pToken);
7
    i++;
8
    pToken = strtok(NULL, ";,#");
9
  }

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren