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 :

D�b info sur string


Sujet :

C++

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    98
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 98
    Par d�faut D�b info sur string
    Salut � tous,
    Je suis d�butant, et je voudrais savoir comment interroger l'�galit� de deux strings de mani�re insensible � la casse.
    Je fais sChaineInterrog�e==sChaineModele
    Ca marche, mais c'est sensible � la casse.

    Merci � tous.

    Alain

  2. #2
    Membre chevronn�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Mai 2006
    Messages
    366
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 366
    Par d�faut

  3. #3
    Membre averti
    Inscrit en
    Ao�t 2006
    Messages
    40
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 40
    Par d�faut
    Salut,

    avant de les comparer, tu mets tous les caract�res de tes deux cha�nes en majuscule. J'esp�re que c'est ce que tu voulais.

  4. #4
    Membre confirm�
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    98
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 98
    Par d�faut
    Salut,
    Oui c'est ce que je veux faire.
    Dans la FAQ, il passe par des foncteurs. Et de plus, �a ne marche pas chez moi, je ne dois pas avoir le bon header pour transform.
    Je voudrais faire plus simple.
    Juste utiliser une boucle et toupper().
    Mais toupper prend un int comme argument.
    Comment puis-je transmettre chacuns des caract�res de ma string � toupper() et les recuperrer pour en faire une nouvelle string.
    Comment convertir un caract�re en int?
    Merci.
    Alain

  5. #5
    R�dacteur
    Avatar de Laurent Gomila
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par d�faut
    La conversion de char en int est automatique (un char est un petit entier). Par contre la conversion inverse demande un petit static_cast, puisqu'il y a perte de taille.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    char c = 'x';
    c = static_cast<char>(toupper(c));

  6. #6
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Euh, juste pour �tre s�r: toupper() est suppos� accepter les valeurs n�gatives ou faut-il passer par un unsigned char, comme pour les fonctions isXXXX() de <ctype.h> ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre �m�rite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    D�tails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Par d�faut
    t'as essay� simplement �a :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <string>
    #include <algorithm>
     
    int main()
    {
       std::string str( "test" );
     
       std::transform( str.begin(), str.end(), str.begin(), toupper ); 
     
       std::cout << str << std::endl;
       return 0;
    }
    sinon dans boost, l'algo to_upper() qui prend juste un param�tre.

  8. #8
    Membre chevronn�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Mai 2006
    Messages
    366
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 366
    Par d�faut
    Citation Envoy� par alainpeniche Voir le message
    Salut,
    Oui c'est ce que je veux faire.
    Dans la FAQ, il passe par des foncteurs. Et de plus, �a ne marche pas chez moi, je ne dois pas avoir le bon header pour transform.
    le header <algorithm> fait partie de la librairie standard, bizarre que tu ne l'aies pas Tu as quoi comme erreur ?

    Je voudrais faire plus simple.
    Juste utiliser une boucle et toupper().
    Mais toupper prend un int comme argument.
    Comment puis-je transmettre chacuns des caract�res de ma string � toupper() et les recuperrer pour en faire une nouvelle string.
    Comment convertir un caract�re en int?
    Merci.
    Alain
    C'est exactement ce que fait transform (sauf qu'il modifie directement la string, il n'en cr�e pas une nouvelle) ... Donc si tu ne peux pas l'utiliser, il te suffit de la r��crire : boucle sur l'iterateur de ton string et applique exactement ce qu'il y a dans la FAQ : cast vers uchar et fonction toupper.

    Sinon l'article "comment manipuler des cha�nes ind�pendamment de la casse" donne une autre solution.

  9. #9
    Membre �m�rite

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Par d�faut
    Citation Envoy� par M�dinoc Voir le message
    Euh, juste pour �tre s�r: toupper() est suppos� accepter les valeurs n�gatives ou faut-il passer par un unsigned char, comme pour les fonctions isXXXX() de <ctype.h> ?
    Oui, toupper() � un comportement ind�fini sur les valeurs n�gatives (crash le plus souvent). Il faut donc absolument convertir le char en unsigned char.

  10. #10
    Expert confirm�

    Inscrit en
    Novembre 2005
    Messages
    5 145
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par d�faut
    Citation Envoy� par Sylvain Togni Voir le message
    Oui, toupper() � un comportement ind�fini sur les valeurs n�gatives (crash le plus souvent). Il faut donc absolument convertir le char en unsigned char.
    Sauf EOF qu'on peut passer sans danger.

  11. #11
    Membre confirm�
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    98
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 98
    Par d�faut
    Merci les gars pour toute ces infos.
    Alain

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

Discussions similaires

  1. Cherche lien info... sur l'analyse du code
    Par Alec6 dans le forum Qualim�trie
    R�ponses: 3
    Dernier message: 03/03/2004, 14h44
  2. R�cup�rer des infos sur un AVI
    Par FredericB dans le forum C++Builder
    R�ponses: 2
    Dernier message: 08/12/2003, 14h25
  3. Demande d'info sur treeview
    Par Anaxagore dans le forum IHM
    R�ponses: 6
    Dernier message: 28/08/2003, 18h27
  4. [MFC]Info sur da la fusion sous Word
    Par kor dans le forum MFC
    R�ponses: 6
    Dernier message: 22/08/2003, 11h14
  5. [CR] Infos sur l'utilisation de dll
    Par step dans le forum SAP Crystal Reports
    R�ponses: 11
    Dernier message: 09/08/2002, 11h35

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