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 :

Compter le nombre de caractere dans une chaine


Sujet :

C++

  1. #1
    Membre �clair�
    Avatar de jmjmjm
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Par d�faut Compter le nombre de caractere dans une chaine
    Je voudrais compter combien de fois le caractere ";" est rep�t� dans une chaine string


    MERCI ET BONNE PROG :!!

  2. #2
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 5 296
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    std::string toto = "toto";
    int c = std::count(toto.begin(), toto.end(), 'o');
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...

  3. #3
    Membre �clair�
    Avatar de jmjmjm
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Par d�faut
    Merci pour cette reponse clair et rapide !!

  4. #4
    Membre �clair�
    Avatar de jmjmjm
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Avril 2005
    Messages
    760
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2005
    Messages : 760
    Par d�faut
    Est il possible de limiter count a une certaine partie de la chaine ??

    Je voudrais par exemple compter les ; entre la position 8 et 21

    MERCI ET BONNE PROG !!

  5. #5
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par d�faut
    tu remplaces cette liogne
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    int c = std::count(toto.begin(), toto.end(), 'o');
    par

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    int c = std::count(8, 21, 'o');

  6. #6
    Membre exp�riment�
    Avatar de David Fleury
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    253
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 253
    Par d�faut
    Citation Envoy� par hiko-seijuro
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    int c = std::count(8, 21, 'o');
    ???

  7. #7
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 5 296
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    const int pfirst = std::max(8, toto.size());
    const int plast = std::max(21, toto.size());
    const int c = std::count(toto.begin()+pfirst, toto.begin()+plast, 'o');
    Et d�s que la contiguit� des caract�res dans les std::string aura �t� approuv�e/ent�rinn�e, on pourra officiellement �crire:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    const int c = std::count(&toto[pfirst], &toto[plast], 'o');
    qui est plus agr�able � l'oeil et au doigt.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...

  8. #8
    Membre exp�riment�
    Avatar de David Fleury
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    253
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 253
    Par d�faut
    Il y a des impl�mentations qui n'ont pas la continu�t� ?

    Ca parait d�licat d'offrir string::c_str() ( et m�me data() ) sans cela non ?

  9. #9
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 5 296
    Par d�faut
    Pas � ma connaissance.
    Ceci dit, il suffit que c_str() (et data()) r�alloue(nt) � la vol�e une zone unique de caract�res contigus. Il y a d�j� cette possibilit� avec c_str() pour s'assurer du 0-terminal � en lire la liste des fonctions invalidant pointeurs et it�rateurs dans mes souvenirs. Apr�s, je pense que pas grand monde n'ait estim� que cela vaille le coup d'avoir une string impl�ment�e comme une deque. Trop d'interfaces � la C qui attendent des "const char*" peut-�tre ?
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...

  10. #10
    Membre exp�riment�
    Avatar de David Fleury
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    253
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 253
    Par d�faut
    IMHO, le co�t de l'allocation est prohibitif.

    Mais attendons que les sages ratifient la continu�t� alors

  11. #11
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Salut,

    Et pourtant, j'ai d�j� vu des codes du genre de
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    std::string chaine;
    char caractere=chaine[n];
    A vrai dire, la contiguit� ne doit pas *forc�ment* etre ent�rin�e... pour autant qu'une surcharge de l'op�rateur [] l'aie �t�

    Et, finalement, sa surcharge ne devrait pas poser �norm�ment de probl�mes:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    char std::string::operator[](int index) const
    {
        if(index>0)
            return (Next->operator[](index-1);
        return *valeur_caractere;
    }
    peut y suffire

    Maintenant, encore faut il que ce genre de surcharge soit impl�ment�/ent�rin�...

    Quelqu'un en sait il quelque chose du point de vue de l'ent�rination
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  12. #12
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 5 296
    Par d�faut
    Sauf que ....
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    const_reference operator[](size_type off) const;
    reference operator[](size_type off);
    La contiguit� est un �tat de fait dans toutes les impl�mentations de la SL que je connaisse. Du coup, comme avec les vecteurs, en pratique on est en mesure d'avoir &c[0]+n == &c[n] -- au d�tail des proxies pr�s. En th�orie, on n'est pas sens�s l'avoir.
    D'ailleurs, ces histoires de proxy me font dire que si l'�criture via l'op�rateur [] est valable, c'est dans le meilleur des cas avec des chaines vues comme non modifiables.

    Le futur est par l�. Il me semble qu'un autre lien avait �t� donn� il y a peu. Ce n'�tait pas Loufoque qui l'avait donn� ?
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...

  13. #13
    Expert confirm�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    D�cembre 2003
    Messages
    3 549
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

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

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 3 549
    Par d�faut
    Quel type de lien ?

  14. #14
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 5 296
    Par d�faut
    Sur la contrainte de contiguit� des caract�res des strigs -- mais j'ai tr�s bien pu mettre tromp�, apr�s une certaine heure, les noms se m�langent.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...

Discussions similaires

  1. R�ponses: 1
    Dernier message: 13/05/2009, 13h49
  2. compter le nombre de mots dans une chaine en php
    Par hadjiphp dans le forum Langage
    R�ponses: 6
    Dernier message: 22/04/2009, 21h20
  3. R�ponses: 4
    Dernier message: 04/03/2009, 10h18
  4. Compter le nombre d'occurence dans une chaine
    Par shirya dans le forum Langage
    R�ponses: 2
    Dernier message: 16/10/2007, 20h39
  5. [Tableaux] compter le nombre de caractere d'une chaine
    Par phpaide dans le forum Langage
    R�ponses: 3
    Dernier message: 01/06/2006, 15h00

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