Salut,
J'ai recherché un peu partout cette information mais je la trouve pas.
la fonction find, permettant de trouver un sous-chaine dans un chaine, est-elle sensible à la casse ?
Salut,
J'ai recherché un peu partout cette information mais je la trouve pas.
la fonction find, permettant de trouver un sous-chaine dans un chaine, est-elle sensible à la casse ?
Avant toutes questions : Développement Web, (X)HTML, CSS, JavaScript, AJAX, ASP, Flash/Flex, Webmarketing, XML, PHP
Bien sûr. Les opérations sur les std::string sont très bas niveau, elles n'opèrent que sur des valeurs entières et ne font aucune interprétation des caractères.
D'ailleurs, la notion de casse nécessite d'introduire la notion de majuscule / minuscule, qui est loin d'être triviale à gérer avec certains jeux de caractères.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Ok![]()
Avant toutes questions : Développement Web, (X)HTML, CSS, JavaScript, AJAX, ASP, Flash/Flex, Webmarketing, XML, PHP
Pas tout à fait d'accord.
Elle interprètent les caractères, mais l'interprétation par défaut ne fait rien de spécial. J'utilise quotidiennement au boulot une classe de chaînes insensible à la casse qui est juste comme std::string un typedef vers std::basic_string, mais avec d'autres paramètres templates, en particulier un char_trait qui permet d'être case_insensitive.
Je me suis inspiré de http://www.gotw.ca/gotw/029.htm (de mémoire, il y a une erreur dans le code proposé, erreur corrigée dans la version du livre, qui qui peut se retrouver tout seul).
Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.
D'ailleurs, la FAQ reprend l'erreur du site gotw. Le problème est dans la fonction find si on ne trouve pas, on est sensé renvoyer NULL. Par exemple en remplaçant :
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part return s;
Code : Sélectionner tout - Visualiser dans une fenêtre à part return n>0 ? s : 0;
Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.
Partager