Pbme avec chaine de caractère et sscanf (débutant :( )

cs_peyou Messages postés 3 Date d'inscription samedi 30 août 2003 Statut Membre Dernière intervention 9 septembre 2003 - 30 août 2003 à 02:34
jojomillenium Messages postés 136 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 26 mai 2007 - 26 oct. 2006 à 19:05
sur une chaine de caractère de la forme "bidule = machin", je voudrais extraire les deux chaines "bidules" et " machin"
1/ le nombre d'espace autour du "=" peut etre variable
2/ je pensais utilise sscanf() mais je ne m'en sors pas
j'ai essayé ça :
char string[20] = "bidule = machin";
char *chaine1 ;
char *chaine2 ;
resultat sscanf(string,"%s %s",chaine1,chaine2);
printf("\nchaine1 : %s",chaine1);
printf("\nchaine2 : %s",chaine2);

ça ne marche pas.
(j'ai un "Bus error" sous mac OSX)

4 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
30 août 2003 à 03:20
Salut,

char szText[64] = "bidule = machin";
char szA[64];
char szB[64];

char * c = szText;
char * d = szA;while(*c !32) *d++ *c++; *d = 0; // copie du 1er motwhile(*c 32 || *c '=') c++; // on va jusqu'a la lettre du 2eme mot
d = szB;while(*c !0) *d++ *c++; *d = 0; // copie du 2eme mot
0
cs_peyou Messages postés 3 Date d'inscription samedi 30 août 2003 Statut Membre Dernière intervention 9 septembre 2003
30 août 2003 à 18:41
merci, ça marche nickel !
question, 32 c'est l'espace c ça ?
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
30 août 2003 à 18:44
Salut,
oui c'est l'espace.
0
jojomillenium Messages postés 136 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 26 mai 2007
26 oct. 2006 à 19:05
Si jamais pour utiliser sscanf tu dois mettre l addresse de tes variable! comme ca

resultat sscanf(string,"%s %s",&chaine1,&chaine2);

et ca devrai marcher normalement :)
0
Rejoignez-nous