Bonjour,
J'aurais besoin d'une petite explication concernant un problème que j'ai rencontré avec la fonction strtok.
J'ai ces deux codes qui ne diffèrent que par l'initialisation de str, dans le premier cas j'utilise un pointeur, dans le second cas je met des crochets.
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 #include <stdio.h> #include <stdlib.h> #include <dirent.h> int main() { char *str="b/o/n/j/o/u/r"; char delims[] = "/"; char *result = NULL; result = strtok( str, delims ); while( result != NULL ) { printf( "result is \"%s\"\n", result ); result = strtok( NULL, delims ); } return 0; }Le premier code donne une erreur de segmentation le second fonctionne, j'aurais aimé savoir pourquoi ?
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 #include <stdio.h> #include <stdlib.h> #include <dirent.h> int main() { char str[]="b/o/n/j/o/u/r"; char delims[] = "/"; char *result = NULL; result = strtok( str, delims ); while( result != NULL ) { printf( "result is \"%s\"\n", result ); result = strtok( NULL, delims ); } return 0; }
J'ai pensé qu'il pouvais s'agir du fait que strtok modifie la chaine mais je n'en suis pas sûr.
Merci à ceux qui m'apporterons leur aide.
Partager