C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

tolower - toupper sur les string

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French)
View previous topic :: View next topic  
Author Message
Guillaume Gourdin
Guest





PostPosted: Wed Apr 21, 2004 8:39 am    Post subject: tolower - toupper sur les string Reply with 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 ?

Merci.


Back to top
Jean-Marc Bourguet
Guest





PostPosted: Wed Apr 21, 2004 9:01 am    Post subject: Re: tolower - toupper sur les string Reply with quote



"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





PostPosted: Thu Apr 22, 2004 7:53 am    Post subject: Re: tolower - toupper sur les string Reply with quote



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





PostPosted: Thu Apr 22, 2004 8:28 am    Post subject: Re: tolower - toupper sur les string Reply with quote

[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





PostPosted: Thu Apr 22, 2004 10:26 am    Post subject: Re: tolower - toupper sur les string Reply with quote

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





PostPosted: Thu Apr 22, 2004 1:42 pm    Post subject: Re: tolower - toupper sur les string Reply with 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 :
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





PostPosted: Thu Apr 22, 2004 3:30 pm    Post subject: Re: tolower - toupper sur les string Reply with quote

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





PostPosted: Thu Apr 22, 2004 4:12 pm    Post subject: Re: tolower - toupper sur les string Reply with quote

[email]kanze (AT) gabi-soft (DOT) fr[/email] writes:

Quote:
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.

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
Alain Naigeon
Guest





PostPosted: Thu Apr 22, 2004 8:39 pm    Post subject: Re: tolower - toupper sur les string Reply with quote

"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... Wink

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





PostPosted: Fri Apr 23, 2004 9:37 am    Post subject: Re: tolower - toupper sur les string Reply with quote

"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. Smile

C'est vrai. Ce sont des « autorités », donc, ils « exigent »Smile.

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





PostPosted: Fri Apr 23, 2004 9:40 am    Post subject: Re: tolower - toupper sur les string Reply with quote

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





PostPosted: Fri Apr 23, 2004 11:19 am    Post subject: Re: tolower - toupper sur les string Reply with quote

[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





PostPosted: Mon Apr 26, 2004 11:47 am    Post subject: Re: tolower - toupper sur les string Reply with 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 :
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





PostPosted: Tue Apr 27, 2004 7:56 am    Post subject: Re: tolower - toupper sur les string Reply with quote

"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
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French) All times are GMT
Page 1 of 1

 
Jump to:  
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


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.