IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

detection de double ou integer dans un string


Sujet :

C++

  1. #1
    Membre �prouv�
    Profil pro
    Inscrit en
    F�vrier 2010
    Messages
    2 051
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 2 051
    Par d�faut detection de double ou integer dans un string
    Bonjour tous,

    j'ai besoin d'un coup de main car je ne sais pas comment faire pour detecter des "integer" ou des "double" dans un string.

    Je m'explique, j'ai plusieurs string qui ressemble � ceci:

    "Ae7.8AA877E8.99"

    et je voudrais extraire les groupe de lettre � partir de cela et les nombre,au final je voudrais avoir ces string:

    "Ae" "7.8" "AA" "877" "E" "8.99"

    mais je n'y suis pas arriv�, pourriez vous m'aidez?

    => le nombre de lettre est soit 1 soit 2 soit 3 et le chiffre et necessairement compris entre 0 et 100

    merci d'avance pour votre aide

    EDIT:
    en fait il faudrait que je detecte ds mon string si le charactere "i" est une lettre ou une nombre ou vigurle.
    => si c'est un nombre ou une virgule alors je fais rien
    => si c'est une lettre alors je la garde de cot�

    => si le prochaine string est aussi une lettre je le concatene...

    EDIT 2:
    dans un vecteur j'ai deja tous les nom des �lements chimiques qui m'interesse, donc je peux peut etre comparer ces string avec des parti de mon string pour en deduire les noms qu'il y a dans ce string compos� de noms d'elements + de nombres?

    ==> en fait il faudrait que je fasse un peu comme un find charactere mais que ca ne soit pas charactere mais un groupe de charactere qui se suivent

  2. #2
    Membre chevronn�

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Par d�faut
    Salut,
    tout est dit :
    en fait il faudrait que je detecte ds mon string si le charactere "i" est une lettre ou une nombre ou vigurle.
    => si c'est un nombre ou une virgule alors je fais rien
    => si c'est une lettre alors je la garde de cot�

    => si le prochaine string est aussi une lettre je le concatene...
    tu n'as plus qu'a utiliser cette fonction l�

  3. #3
    Membre �prouv�
    Profil pro
    Inscrit en
    F�vrier 2010
    Messages
    2 051
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 2 051
    Par d�faut
    merci bertry,

    en fait je pensais qu'il y avait quelque chose de plus automatique vu que j'ai deja quelque part le noms de tous les elements possible qui est stock�...

    => sinon � part ceci, comme puis je faire le test:

    - si c'est un nombre ou un point alors je fais rien
    - si c'est une lettre alors je garde ?

  4. #4
    Membre chevronn�

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Par d�faut
    EDIT 2:
    dans un vecteur j'ai deja tous les nom des �lements chimiques qui m'interesse, donc je peux peut etre comparer ces string avec des parti de mon string pour en deduire les noms qu'il y a dans ce string compos� de noms d'elements + de nombres?
    Oui tu peux utiliser �a pour te simplifier le boulot si tu as la liste des �l�ments d�j� toute pr�te.
    Utilises alors la fonction "find" dont la doc est ici pour localiser ces �l�ments dans ta string

  5. #5
    Membre chevronn�

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Par d�faut
    Ben voil� :
    ==> en fait il faudrait que je fasse un peu comme un find charactere mais que ca ne soit pas charactere mais un groupe de charactere qui se suivent
    Tu as l'air de bien te d�brouiller tout seul finalement!!!

    La fonction find de la classe string fait �a tr�s bien et elle te dis m�me si la sous chaine n'est pas dans la chaines principale...

  6. #6
    Membre �prouv�
    Profil pro
    Inscrit en
    F�vrier 2010
    Messages
    2 051
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 2 051
    Par d�faut
    Citation Envoy� par bertry Voir le message
    Oui tu peux utiliser �a pour te simplifier le boulot si tu as la liste des �l�ments d�j� toute pr�te.
    Utilises alors la fonction "find" dont la doc est ici pour localiser ces �l�ments dans ta string
    merci je vais faire ceci je pense.

    => sinon juste pour ma culture, comment fait on pour savoir si monString[i] est un nombre ou une lettre ?

  7. #7
    Membre chevronn�

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Par d�faut
    sinon juste pour ma culture, comment fait on pour savoir si monString[i] est un nombre ou une lettre ?
    l'op�rateur [] te renvoie un char : Je pense qu'en le castant en int et en regardant si cette valeur est entre 48 et 57 c'est un chiffre et entre 65 et 122 c'est une lettre ( � tester de te donnes �a comme �a me viens... )

  8. #8
    Membre �prouv�
    Profil pro
    Inscrit en
    F�vrier 2010
    Messages
    2 051
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 2 051
    Par d�faut
    merci de ton aide, je pense que j'ai tous les �l�ments � pr�sent

  9. #9
    Membre chevronn�

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Par d�faut
    l'op�rateur [] te renvoie un char : Je pense qu'en le castant en int et en regardant si cette valeur est entre 48 et 57 c'est un chiffre et entre 65 et 122 c'est une lettre ( � tester de te donnes �a comme �a me viens... )
    M�me pas besoins de caster en int!!! Suis-je b�te!
    tu as juste � �crire :
    ( c >= 'A' && c <= 'Z' ) || ( c >= 'a' && c <= 'z' ) pour les lettres ( attention ya d'autres caract�res entres le 'Z' et le 'a' )
    et ( c >= '0' && c <= '9' ) pour les chiffres

  10. #10
    Membre �prouv�
    Profil pro
    Inscrit en
    F�vrier 2010
    Messages
    2 051
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 2 051
    Par d�faut
    Citation Envoy� par bertry Voir le message
    M�me pas besoins de caster en int!!! Suis-je b�te!
    tu as juste � �crire :
    ( c >= 'A' && c <= 'Z' ) || ( c >= 'a' && c <= 'z' ) pour les lettres ( attention ya d'autres caract�res entres le 'Z' et le 'a' )
    et ( c >= '0' && c <= '9' ) pour les chiffres
    super merci!

    par contre est tu certain que ceci fonctionne pour des doubles:

  11. #11
    Membre chevronn�

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Par d�faut
    Non, il va falloir utiliser un "parser" de ton cru ou tout fait pour transformer une chaine en double. Quand tu aura localis� tous l� �l�ments chimiques, ce qui restera entre eux c'est les double sous forme de string. Mais, je sais plus comment on fait en natif, je regarde...

    Alors il semble que la fonction atof soit l� pour �a...

    Il y a aussi de possibilit�s avec boost:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    double value;
    try
    {
        value = boost::lexical_cast<double>(my_string);
    }
    catch (const std::exception&)
    {
        value = 0;
    }
    et surement bien d'autres...

  12. #12
    Membre �prouv�
    Profil pro
    Inscrit en
    F�vrier 2010
    Messages
    2 051
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 2 051
    Par d�faut
    merci beaucoup

  13. #13
    Membre chevronn�

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Par d�faut
    J'ai compl�t� ma r�ponse ( voir ci-dessus )

  14. #14
    Membre confirm�
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    28
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 28

  15. #15
    Membre chevronn�

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Par d�faut
    Il y a aussi une rubrique du forum qui utilise les flux et qui doit s'adapter au double l�

  16. #16
    Membre �prouv�
    Profil pro
    Inscrit en
    F�vrier 2010
    Messages
    2 051
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 2 051
    Par d�faut
    merci c'est tres gentil d'avoir pris le temps de m'aider, je vais regarder tous cela

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Double JFrame et enregistrer des String dans un fichier .txt
    Par Onelove dans le forum Agents de placement/Fen�tres
    R�ponses: 2
    Dernier message: 29/08/2014, 11h46
  2. Format d'un double stock� dans une String
    Par ep31 dans le forum Struts 1
    R�ponses: 5
    Dernier message: 20/09/2007, 12h27
  3. Affichage de String au lieu d'Integer Dans un DBCombo!
    Par soror dans le forum Bases de donn�es
    R�ponses: 5
    Dernier message: 17/07/2007, 12h37
  4. Recherche d'un String dans un String ?
    Par apen2k2 dans le forum Langage
    R�ponses: 9
    Dernier message: 14/04/2003, 11h08
  5. Centrer un texte dans un string Grid
    Par christine dans le forum C++Builder
    R�ponses: 5
    Dernier message: 22/10/2002, 22h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo