Extraction des sous-chaine des caractères séparées par des virgules

othkreen Messages postés 5 Date d'inscription samedi 12 mai 2007 Statut Membre Dernière intervention 30 septembre 2007 - 30 sept. 2007 à 04:21
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 - 1 oct. 2007 à 17:46
bonjour à tous,

j'ai un problème avec les chaines de caractères en C++.

j'ai ecrit quelques instructions pour demander à un utilisateur d'entrer une chaine de caractères sous un format:

char buffer[256];
cout<<"entrer votre adresse (noapp, nomRue, ville, province, pays)";
cin.getline(buffer,255);
string adresse=buffer;

maintenant, je veux vérifier si l'adresse entrée est dans le bon format. c'est à dire prendre le
"noapp" voir s'il est un entier;
"nomRue" si est non vide
"ville" si non vide...

je ne sais pas comment extraire ces champs (délimités par des virgules ) de la chaine adresse pour effectuer mes véfications

pouvez vous m'aider?

2 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
30 sept. 2007 à 10:17
char buffer[256];
char *c;
// cherchons une virgule
c = buffer;
while(*c) {
  if(*c == ',') IciOnAlaVirgule
  c++;
}

etc... on trouve les choses en comparant la valeur des octets.

string adresse=buffer;
si tu commences direct avec ce genre de bidule pour handicapé du pointeur, tu ne sauras jamais coder.

ciao...
BruNews, MVP VC++
0
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
1 oct. 2007 à 17:46
Yop,

char szEx = "yop,yip,yap";
// variable de récupe :
char szA[4],szB[4],szC[4];

sscanf(szEx,"%s,%s,%s",szA,szB,szC);

++
deck_bsd
___________________________________
[http://deck-bsd.eurower.net]
0
Rejoignez-nous