probleme strtok dans une boucle while
Bonjour, j'ai un soucis que je ne comprend pas avec strtok.
Je souhaite séparer une chaine à chaque caractère virgule ",", jusque là pas de problème, strtok fonctionne bien.
Mais quand je le mets dans une boucle while, il ne me garde que la première sous chaine.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main () {
char data[]="var1,var2";
int i =0;
while (i<10) {
char * result;
result = strtok(data,",");
while (result != NULL) {
printf("result : %s \n", result);
result = strtok(NULL, ",");
}
i++;
}
return 0;
} |
Le résultat de sortie devrait être :
var1
var2
var1
var2
Mais non, j’obtiens ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11
| result : var1
result : var2
result : var1
result : var1
result : var1
result : var1
result : var1
result : var1
result : var1
result : var1
result : var1 |
La 1ere fois mon code fonctionne bien, il m'affiche bien var1 et var2.
Mais après ça part en cacahuète, pourquoi ?