Mot apés mot

Signaler
Messages postés
90
Date d'inscription
lundi 20 février 2006
Statut
Membre
Dernière intervention
6 mars 2007
-
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
-
Bonsoir, voila enfaite j'ai coder un truc pour pouvoir stocker les mots d'une chaine char dans plusieur variable. En gros le premier mot est dans la variable 'mot' et le deuxième est dans la variable 'mot2' etc..

mais voila des que j'envoi un message avec les caractères 'è' ou 'à' on dirais que au traitement des mots ces lettres sois considéré comme des espaces...

voila mon code:


int x = 0;
int z = 1;
int y = 0;
char mot[1000] = {};
char mot2[1000] = {};
char mot3[1000] = {};
char mot4[1000] = {};
char mot5[1000] = {};
char mot6[1000] = {};
char autre[1];
while(Ligne[x] != '\0')
{
if (Ligne[x] == ':' && z == 1) {x++;}
autre[y]=Ligne[x];
x++;
if (isspace(autre[y]) == 0)
{
if (z == 1) { strncat(mot, autre,1); }
if (z == 2) { strncat(mot2, autre,1); }
if (z == 3) { strncat(mot3, autre,1); }
if (z == 4) { strncat(mot4, autre,1); }
if (z == 5) { strncat(mot5, autre,1); }
if (z == 6) { strncat(mot6, autre,1); }
}
if (isspace(autre[y]) > 0) { z++; }
}

Pouvez-vous me dire ce qui ne va pas ? ou si vous avez une meilleur solution pour stocker les mots de ma chaine, pouvez-vous me la donner ?

1 réponse

Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Et bien je crois qu'avec sscanf, tu pourrais récupérer mot pas mot.


Exemple


char *buffer = "Salut les petits";


char stock1[256];
char stock2[256];
char stock3[256];

sscanf(buffer, "%s %s %s", stock1, stock2, stock3);

évidament tu peut faire une boucle

int value = 0;
while (value < 3)
{
sscanf(buffer, "%s", stock1);
printf("%s", stock1);
value++;
}

Ce ne sont que des exemple. Tu peut les modifier pour réglé ton problème.

___________________________________________
Les plus grands esprits trouvent toujours une solution