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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?