Je voudrais compter combien de fois le caractere ";" est rep�t� dans une chaine string
MERCI ET BONNE PROG :!!
Je voudrais compter combien de fois le caractere ";" est rep�t� dans une chaine string
MERCI ET BONNE PROG :!!
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...
Merci pour cette reponse clair et rapide !!
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 !!
tu remplaces cette liogne
par
Code : S�lectionner tout - Visualiser dans une fen�tre � part int c = std::count(toto.begin(), toto.end(), 'o');
Code : S�lectionner tout - Visualiser dans une fen�tre � part int c = std::count(8, 21, '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
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');
qui est plus agr�able � l'oeil et au doigt.
Code : S�lectionner tout - Visualiser dans une fen�tre � part const int c = std::count(&toto[pfirst], &toto[plast], '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...
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 ?
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...
IMHO, le co�t de l'allocation est prohibitif.
Mais attendons que les sages ratifient la continu�t� alors![]()
Salut,
Et pourtant, j'ai d�j� vu des codes du genre de
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�
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3 std::string chaine; char caractere=chaine[n];
Et, finalement, sa surcharge ne devrait pas poser �norm�ment de probl�mes:
peut y suffire
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; }
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
Sauf que ....
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.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 const_reference operator[](size_type off) const; reference operator[](size_type off);
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...
Quel type de lien ?
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...
Partager