Gibt es eine Möglichkeit Token in C zu zählen?

8

Ich verwende strtok , um eine Zeichenfolge in Token aufzuteilen. Kennt jemand eine Funktion, die tatsächlich die Anzahl der Token zählt?

Ich habe eine Befehlszeichenfolge und ich muss sie teilen und die Argumente an execve() übergeben.

Danke!

Bearbeiten

execve nimmt Argumente als char** , also muss ich ein Array von Zeigern zuweisen. Ich weiß nicht, wie viele zuzuteilen sind, ohne zu wissen, wie viele Tokens es gibt.

    
James 25.10.2012, 23:42
quelle

2 Antworten

8

Ein Ansatz wäre, einfach strtok mit einem Zähler zu verwenden. Das ändert jedoch die ursprüngliche Zeichenfolge.

Ein anderer Ansatz besteht darin, strchr in einer Schleife zu verwenden:

%Vor%

Wenn Sie mehrere Trennzeichen haben, verwenden Sie strpbrk :

%Vor%     
nneonneo 25.10.2012, 23:54
quelle
3

Die Anzahl der Token ist nichts anderes als die Häufigkeit des Auftretens des verwendeten Begrenzers. Deine Frage läuft also auf Nein hinaus. von Zeiten des Auftretens eines Zeichens in einer Zeichenfolge

sagen, das Trennzeichen in STRTOK-Funktion in c ist ''

%Vor%

Nein. Tokens wäre gleich wie count + 1

    
router 15.10.2014 14:39
quelle

Tags und Links