OVH Cloud OVH Cloud

tolower - toupper sur les string

13 réponses
Avatar
Guillaume Gourdin
Bonjour à tous, je ne trouve pas de fonctions qui permettent de mettre une
std::string en minuscule ou en majuscule. En existe t-il ? Et si ce n'est
pas le cas, comment me conseillez vous de procéder ?

Merci.

3 réponses

1 2
Avatar
Jean-Marc Bourguet
writes:

Jean-Marc Bourguet wrote in message
news:...
writes:

Je n'arrive pas à rétrouver le document, mais dans le temps, il y
avait sur le site Unicode une explication de comment on doit
procéder dans une application interactive.


De memoire, 4 temps: majuscules, minuscule, titre, tel qu'entre.


Surtout, qu'il fallait sauvegarder la forme initiale tant que la
possibilité de faire marche en arrière doit exister.


C'est le quatrieme temps du cycle.

A+

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org



Avatar
Michel Michaud
Dans news:,
"Michel Michaud" wrote in message
news:<TYPhc.64934$...
Effectivement. Alors dans un logiciel qui doit retrouver une valeur
quand les majuscules/minuscules ne sont pas respectées, il ne faut
pas convertir, mais bien utiliser un recherche approximative du
genre « LIKE » et demander à l'utilisateur de choisir/confirmer
qu'on a bien trouvé ce qu'il voulait si ce n'est pas parfaitement
identique.


Il y a plusieurs solutions, selon ce qu'on veut faire. Mais il ne
faut pas être naîf. Si on veut comparer sans tenir compte de la
case, il faut commencer par définir ce que signifie « égal » dans
ce cas-là. C'est loin d'être évident.

Et si c'est certain que l'intéractif est le moyen le plus sûr
d'arriver à ce que veut l'utilisateur, ce n'est pas toujours une
option possible.



S'il n'y a pas d'interactivité, qui aura fourni la valeur qui
est approximative ? Ou plus exactement, pourquoi la valeur n'est-
elle pas précise au départ ? En répondant à cette question, on
devrait probablement aussi pouvoir trouver les règles pour
déterminer ce qui est « égal ». Ceci dit, j'imagine qu'il y a
quand même certaines règles ad hoc dans les pays où le problème
se pose.

--
Michel Michaud
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/


Avatar
kanze
"Michel Michaud" wrote in message
news:<fF6jc.10655$...
Dans news:,
"Michel Michaud" wrote in message
news:<TYPhc.64934$...
Effectivement. Alors dans un logiciel qui doit retrouver une valeur
quand les majuscules/minuscules ne sont pas respectées, il ne faut
pas convertir, mais bien utiliser un recherche approximative du
genre « LIKE » et demander à l'utilisateur de choisir/confirmer
qu'on a bien trouvé ce qu'il voulait si ce n'est pas parfaitement
identique.


Il y a plusieurs solutions, selon ce qu'on veut faire. Mais il ne
faut pas être naîf. Si on veut comparer sans tenir compte de la
case, il faut commencer par définir ce que signifie « égal » dans ce
cas-là. C'est loin d'être évident.

Et si c'est certain que l'intéractif est le moyen le plus sûr
d'arriver à ce que veut l'utilisateur, ce n'est pas toujours une
option possible.


S'il n'y a pas d'interactivité, qui aura fourni la valeur qui
est approximative ? Ou plus exactement, pourquoi la valeur n'est-
elle pas précise au départ ?


Qui sait. Celui qui était assis devant la machine client d'où l'ordre de
créer l'objet est venu, la veille. Tous les traitements informatique ne
se font pas en temps réel, loin de ça.

En répondant à cette question, on devrait probablement aussi pouvoir
trouver les règles pour déterminer ce qui est « égal ».


En général, on trouve des règles. Mais elles dépendent souvent du
domaine de l'application.

C'est ce que j'ai dit : il faut commencer par définir ce que signifie
« égal ». C'est rarement impossible, et même rarement difficile. Mais
c'est étonnant combien de gens ne se rendent pas compte qu'il faut le
définir ; qu'il n'y a pas de définition universelle qui va de soi.

Ceci dit, j'imagine qu'il y a quand même certaines règles ad hoc dans
les pays où le problème se pose.


Le problème, en général, ce n'est pas qu'il n'y a pas de règles ad hoc.
Le problème, c'est qu'il y en a trop, et qu'elles ne sont pas toujours
d'accord entre elles. Ou qu'elles ne s'appliquent que dans certains
contextes.

C'est assez courant en anglais, par exemple, de traiter Mc comme si
c'était Mac. Mais seulement quand c'est au début d'un nom de famille, et
ce n'est pas obligatoire. En allemand, dans certains contextes, "ä" = "ae", dans d'autres non. En français, il y a des contextes comme les
mots croisés où 'e' == 'é', bien qu'en général, ce n'est pas le cas. Et
ainsi de suite. (Juste pour dire que tu n'as pas besoin d'aller bien
loin pour rencontrer des problèmes.)

--
James Kanze GABI Software mailto:
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34



1 2