dud1410
Messages postés31Date d'inscriptionlundi 25 août 2008StatutMembreDernière intervention 9 novembre 2009
-
5 sept. 2008 à 12:42
dud1410
Messages postés31Date d'inscriptionlundi 25 août 2008StatutMembreDernière intervention 9 novembre 2009
-
11 sept. 2008 à 12:25
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!!!!
fregolo52
Messages postés1114Date d'inscriptionmercredi 15 juin 2011StatutMembreDernière intervention 6 mai 20214 5 sept. 2008 à 13:19
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"