 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Guillaume Gourdin Guest
|
Posted: Wed Apr 21, 2004 8:39 am Post subject: tolower - toupper sur les string |
|
|
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.
|
|
| Back to top |
|
 |
Jean-Marc Bourguet Guest
|
Posted: Wed Apr 21, 2004 9:01 am Post subject: Re: tolower - toupper sur les string |
|
|
"Guillaume Gourdin" <toto (AT) toto (DOT) com> writes:
| Quote: | 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 ?
|
std::ctype<>::toupper() est ce qui est sense etre utilise, de la a
dire que c'est utilisable, il faut vraissemblablement ne pas avoir a
traiter l'allemand et admettre que repasser aux char* est une bonne
chose.
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
|
|
| Back to top |
|
 |
kanze@gabi-soft.fr Guest
|
Posted: Thu Apr 22, 2004 7:53 am Post subject: Re: tolower - toupper sur les string |
|
|
Jean-Marc Bourguet <jm (AT) bourguet (DOT) org> wrote
| Quote: | "Guillaume Gourdin" <toto (AT) toto (DOT) com> writes:
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 ?
std::ctype<>::toupper() est ce qui est sense etre utilise, de la a
dire que c'est utilisable, il faut vraissemblablement ne pas avoir a
traiter l'allemand et admettre que repasser aux char* est une bonne
chose.
|
Indépendamment de la méthode utilisée, il ne faut pas perdre de vue
qu'une telle transformation perd toujours de l'information. 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. Ce dont je me souviens très bien, c'était qu'il fallait
garder la chaîne originale, précisemment parce qu'une fois la
translation effectuée, c'était impossible à le réstituer si on ne
l'avait pas garder. Le 'ß' de l'allemand est un exemple type -- il
devient "SS", mais il y a aussi des "ss" en allemand qui devient "SS".
(Il existe même des doublets du genre Masse/Maße. Selon les règles,
quand un doublet existe, le 'ß' devient "SZ", et non "SS". Mais cette
règle est peu connue, et souvent éfreinte. Ce qui fait que une fois
arrivée à "MASSE", c'est impossible à revenir, même avec un
dictionnaire.)
Aussi, les règles pour l'allemand sont différentes en Suisse qu'en
Allemagne ou l'Autriche.
Même en français, il existe des conventions différentes pour les
caractères accentués. Même si toutes les autorités semblent préférer que
'é' donne 'É', certains utilise la convention que 'é' donne 'E', voire
même que ça dépend du contexte : 'É' en initial, mais 'E' ailleurs.
Et ce n'est qu'un début. Si on quitte l'Europe occidental...
--
James Kanze GABI Software mailto:kanze (AT) gabi-soft (DOT) fr
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
|
|
| Back to top |
|
 |
Falk Tannhäuser Guest
|
Posted: Thu Apr 22, 2004 8:28 am Post subject: Re: tolower - toupper sur les string |
|
|
[email]kanze (AT) gabi-soft (DOT) fr[/email] wrote:
| Quote: | Même en français, il existe des conventions différentes pour les
caractères accentués. Même si toutes les autorités semblent préférer que
'é' donne 'É', certains utilise la convention que 'é' donne 'E'
Ce qui donne par exemple "UN INTERNE TUE A L'ASILE PSYCHIATRIQUE" |
- au moins 4 interprétations sont possibles...
Falk
|
|
| Back to top |
|
 |
Erwann ABALEA Guest
|
Posted: Thu Apr 22, 2004 10:26 am Post subject: Re: tolower - toupper sur les string |
|
|
On Thu, 22 Apr 2004, Falk Tannhäuser wrote:
| Quote: | kanze (AT) gabi-soft (DOT) fr wrote:
Même en français, il existe des conventions différentes pour les
caractères accentués. Même si toutes les autorités semblent préférer que
'é' donne 'É', certains utilise la convention que 'é' donne 'E'
Ce qui donne par exemple "UN INTERNE TUE A L'ASILE PSYCHIATRIQUE"
- au moins 4 interprétations sont possibles...
|
De toute façon, un mec qui gueule comme ça, il ne faut pas l'écouter... ;)
--
Erwann ABALEA <erwann (AT) abalea (DOT) com> - RSA PGP Key ID: 0x2D0EABD5
-----
Think carefully before wishing, it might just come true.
|
|
| Back to top |
|
 |
Michel Michaud Guest
|
Posted: Thu Apr 22, 2004 1:42 pm Post subject: Re: tolower - toupper sur les string |
|
|
Dans news:d6652001.0404212353.6388689f (AT) posting (DOT) google.com,
[email]kanze (AT) gabi-soft (DOT) fr[/email] <kanze (AT) gabi-soft (DOT) fr> a écrit :
| Quote: | Jean-Marc Bourguet <jm (AT) bourguet (DOT) org> wrote in message
news:<pxbisft7li2.fsf (AT) news (DOT) bourguet.org>...
"Guillaume Gourdin" <toto (AT) toto (DOT) com> writes:
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 ?
|
La vraie question est de savoir à quoi cette conversion servirait.
[...]
| Quote: | Même en français, il existe des conventions différentes pour les
caractères accentués. Même si toutes les autorités semblent
préférer que 'é' donne 'É', certains utilise la convention que 'é'
|
« préférer » n'est pas le bon mot : les autorités « indiquent »,
« précisent », « jurent », etc. :-)
| Quote: | donne 'E', voire
même que ça dépend du contexte : 'É' en initial, mais 'E' ailleurs.
Et ce n'est qu'un début. Si on quitte l'Europe occidental...
|
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.
--
Michel Michaud [email]mm (AT) gdzid (DOT) com[/email]
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
|
|
| Back to top |
|
 |
kanze@gabi-soft.fr Guest
|
Posted: Thu Apr 22, 2004 3:30 pm Post subject: Re: tolower - toupper sur les string |
|
|
Falk Tannhäuser <falk.tannhauser (AT) crf (DOT) canon.fr> wrote
| Quote: | kanze (AT) gabi-soft (DOT) fr wrote:
Même en français, il existe des conventions différentes pour les
caractères accentués. Même si toutes les autorités semblent préférer que
'é' donne 'É', certains utilise la convention que 'é' donne 'E'
Ce qui donne par exemple "UN INTERNE TUE A L'ASILE PSYCHIATRIQUE"
- au moins 4 interprétations sont possibles...
|
Je n'ai pas dit que c'était une bonne convention, seulement que c'en
était une.
--
James Kanze GABI Software mailto:kanze (AT) gabi-soft (DOT) fr
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
|
|
| Back to top |
|
 |
Jean-Marc Bourguet Guest
|
|
| Back to top |
|
 |
Alain Naigeon Guest
|
Posted: Thu Apr 22, 2004 8:39 pm Post subject: Re: tolower - toupper sur les string |
|
|
"Erwann ABALEA" <erwann (AT) abalea (DOT) com> a écrit dans le message news:
[email]Pine.LNX.4.33.0404221226230.19544-100000 (AT) patchwork (DOT) seclogd.org[/email]...
| Quote: | On Thu, 22 Apr 2004, Falk Tannhäuser wrote:
[email]kanze (AT) gabi-soft (DOT) fr[/email] wrote:
Même en français, il existe des conventions différentes pour les
caractères accentués. Même si toutes les autorités semblent préférer
que
'é' donne 'É', certains utilise la convention que 'é' donne 'E'
Ce qui donne par exemple "UN INTERNE TUE A L'ASILE PSYCHIATRIQUE"
- au moins 4 interprétations sont possibles...
De toute façon, un mec qui gueule comme ça, il ne faut pas l'écouter...
|
AH, MAIS OSE DONC REPETER QUE JE NE M'APPELLE PAS STROUSTRUP ! :-)
--
Français *==> "Musique renaissance" <==* English
midi - facsimiles - ligatures - mensuration
http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/
Alain Naigeon - [email]anaigeon (AT) free (DOT) fr[/email] - Strasbourg, France
|
|
| Back to top |
|
 |
kanze@gabi-soft.fr Guest
|
Posted: Fri Apr 23, 2004 9:37 am Post subject: Re: tolower - toupper sur les string |
|
|
"Michel Michaud" <mm (AT) gdzid (DOT) com> wrote
| Quote: | Dans news:d6652001.0404212353.6388689f (AT) posting (DOT) google.com,
[email]kanze (AT) gabi-soft (DOT) fr[/email] <kanze (AT) gabi-soft (DOT) fr> a écrit :
Jean-Marc Bourguet <jm (AT) bourguet (DOT) org> wrote in message
news:<pxbisft7li2.fsf (AT) news (DOT) bourguet.org>...
"Guillaume Gourdin" <toto (AT) toto (DOT) com> writes:
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 ?
La vraie question est de savoir à quoi cette conversion servirait.
|
Tout à fait. Si c'est pour traiter les symboles dans un compilateur
Pascal (qui n'admet que les 26 lettres de base), std::codecvt fait bien
l'affaire. À condition, comme Jean-Marc a signalé, de n'utiliser que les
chaînes de type C.
| Quote: | [...]
Même en français, il existe des conventions différentes pour les
caractères accentués. Même si toutes les autorités semblent préférer
que 'é' donne 'É', certains utilise la convention que 'é'
« préférer » n'est pas le bon mot : les autorités « indiquent »,
« précisent », « jurent », etc.
|
C'est vrai. Ce sont des « autorités », donc, ils « exigent » .
| Quote: | donne 'E', voire
même que ça dépend du contexte : 'É' en initial, mais 'E' ailleurs.
Et ce n'est qu'un début. Si on quitte l'Europe occidental...
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.
--
James Kanze GABI Software mailto:kanze (AT) gabi-soft (DOT) fr
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
|
|
| Back to top |
|
 |
kanze@gabi-soft.fr Guest
|
Posted: Fri Apr 23, 2004 9:40 am Post subject: Re: tolower - toupper sur les string |
|
|
Jean-Marc Bourguet <jm (AT) bourguet (DOT) org> wrote
| Quote: | kanze (AT) gabi-soft (DOT) fr 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.
--
James Kanze GABI Software mailto:kanze (AT) gabi-soft (DOT) fr
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
|
|
| Back to top |
|
 |
Jean-Marc Bourguet Guest
|
Posted: Fri Apr 23, 2004 11:19 am Post subject: Re: tolower - toupper sur les string |
|
|
[email]kanze (AT) gabi-soft (DOT) fr[/email] writes:
| Quote: | Jean-Marc Bourguet <jm (AT) bourguet (DOT) org> wrote in message
news:<pxbisfsm1o9.fsf (AT) news (DOT) bourguet.org>...
[email]kanze (AT) gabi-soft (DOT) fr[/email] 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
|
|
| Back to top |
|
 |
Michel Michaud Guest
|
Posted: Mon Apr 26, 2004 11:47 am Post subject: Re: tolower - toupper sur les string |
|
|
Dans news:d6652001.0404230137.51fac713 (AT) posting (DOT) google.com,
[email]kanze (AT) gabi-soft (DOT) fr[/email] <kanze (AT) gabi-soft (DOT) fr> a écrit :
| Quote: | "Michel Michaud" <mm (AT) gdzid (DOT) com> wrote in message
news:<TYPhc.64934$Gp4.1622835 (AT) news20 (DOT) bellglobal.com>...
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 [email]mm (AT) gdzid (DOT) com[/email]
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
|
|
| Back to top |
|
 |
kanze@gabi-soft.fr Guest
|
Posted: Tue Apr 27, 2004 7:56 am Post subject: Re: tolower - toupper sur les string |
|
|
"Michel Michaud" <mm (AT) gdzid (DOT) com> wrote
| Quote: | Dans news:d6652001.0404230137.51fac713 (AT) posting (DOT) google.com,
[email]kanze (AT) gabi-soft (DOT) fr[/email] <kanze (AT) gabi-soft (DOT) fr> a écrit :
"Michel Michaud" <mm (AT) gdzid (DOT) com> wrote in message
news:<TYPhc.64934$Gp4.1622835 (AT) news20 (DOT) bellglobal.com>...
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.
| Quote: | 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.
| Quote: | 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:kanze (AT) gabi-soft (DOT) fr
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
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|