- include <stdio.h>
- include <stdlib.h>
- include <string.h>
- include <malloc.h>
int main(int argc, char *argv [])
{
char maString[256];
fgets(maString, 255, stdin);
printf("%s 1\n", maString);
/* decoupage */
char delimiteurs[] = "()";
char * monToken;
printf("%s 2\n", maString);
monToken = strtok(maString, delimiteurs);
printf("%s 3\n", maString);
char premierMot[256];
strcpy(premierMot, monToken);
char deuxiemeMot[256];
monToken = strtok(NULL, delimiteurs);
strcpy(deuxiemeMot, monToken);
printf("%s 4\n", maString);
printf("1: %s \n2: %s \n3: %s\n", premierMot, deuxiemeMot, maString);
system("PAUSE");
return 0;
}
Voila.
Pour tes délimiteurs, tu prévoyais 50 cases en mémoire dés le départ, alors que seulement 2 étaient utilisées => mieux vaut ne pas donner le nombre de cases dans ces cas là. (Au pire dans ton cas, la fin de la string est completé par des ´\0´, donc le caractère de fin de string. Si je ne me trompe pas).
Sinon , j´ai juste ajouté le deuxième mot et ça fonctionne ;- ).