2009-11-09 13 views
0

J'utilise le code suivant pour marquer la chaîne en C et en utilisant "," pour faire des jetons mais je voulais savoir quand il faisait un jeton de chaîne quand "" est venu et quand "," apparaît dans la chaîne.Comment savoir quelle était la dernière raison de tokenize

char *pch; 
pch = strtok(buffer, ", "); 
while (pch!=NULL) { 
    printf("%s\n", pch); 
    pch = strtok(NULL, " ,"); 
} 

Répondre

2

Pour autant que je sache, strtok ne supporte pas cette fonctionnalité. Cependant, vous pouvez effectuer une vérification supplémentaire: à chaque fois que pch est renvoyé, vérifiez si le premier caractère du tampon restant comporte "" ou ",". Ensuite, vous devez rechercher le tampon restant, mais ceci est votre devoir :)

0

Le strtok et la CLIB n'exposent pas cette information. Donc, il n'y a pas de moyen portable pour l'obtenir. Vous pouvez obtenir l'information que vous recherchez avec un hack qui fonctionne pour votre implémentation clib, mais si vous voulez quelque chose de stable et portable, le seul choix que vous avez est d'implémenter un strtok-workalike qui vous indique le séparateur .

Cette tâche n'est pas de fusée-science btw ...

Questions connexes