salut tout le monde:j'ai une chaine de caractere de la forme:"name N1 / Category" et je voudrais la decomposer de facon a avoir chaque mot dans une chaine a part est ce que quelqu'un peut m'aider!!!!
C'est simple tu utilises les fonction strcspn et/ou strstr pour rechercher les espaces.
quand tu trouves un espace tu avances le pointeur de lecteur, et tu recherches a nouveau l'espace.
En cherchant bien sur le Net il doit y avoir des exemples.
ptr[0] contiendra "salut", ptr[1] contiendra "a" et ptr[2] contiendra "tous".
Attention, il ne s'agit que de pointeurs. Ils restent donc dépendants de la chaîne principale (qui ce retrouve donc modifiée). Si tu écrase la chaîne principal, les pointeurs risque de ne plus pointer sur la bonne location.
Si tu veux garder la chaîne principal intacte ou si tu veux la réutiliser pour autre chose, voici une autre routine qui sauvegarde les chaînes dans un tableau à 2 dimensions tout en laissant la principale inchangée:
char buffer[] = "salut a tous", *c = buffer;
char tab[3][12]; // <- 3 mots de chacun 11 char + 0 de fin de chaine
int j = 0;
do {
int k = 0; while(*c !' ' && *c) tab[j][k++] *c++;
tab[j++][k] = 0;
} while(*c++);
tab[0] contiendra "salut", tab[1] contiendra "a" et tab[2] contiendra "tous"