OVH Cloud OVH Cloud

fonction C++ pour comparer deux string

62 réponses
Avatar
Geoffroy Baud
Bonjour,
existe-t-il dans les lib std
du C++ un moyen pour comparer deux
string, et que le test sois case
insensitive ?

if ( "NAME" == "name" )
return TRUE;


merci


--
-------------------------------------------------------------------
Geoffroy Baud geoffroy.baud@wanadoo.fr
0AE5 7A1B 527D 3966 8EBE 2EC0 AA79 EB54 7D7D 7CEC
-------------------------------------------------------------------

10 réponses

1 2 3 4 5
Avatar
Erwann ABALEA
On 22 Sep 2003 wrote:

Erwann ABALEA wrote in message
news:...
On 21 Sep 2003, James Kanze wrote:

À titre d'exemple : tu donnes un fichier avec les noms des villes du
banlieu parisien à un programme écrit en C. Il y en aurait pas mal
qui s'arrête pile au milieu de la ligne avec Le-Haÿ-des-Roses.


Pour y avoir habité pendant 15 ans, je confirme que ça s'écrit bien
L'Haÿ-les-roses, même si ça commence par un H (comme hôpital,
l'hôpital, et pas haricot, le haricot).


Merci pour la correction. Je n'y suis jamais habité, et j'avoue que la
seule chose que je connais de la ville, c'est que c'est la plus grande
commune en France avec un ÿ dans son nom:-). Pour la reste, j'ai bien vu
des panneaux sur l'A 86 en passant, mais je n'y ai jamais prété trop
d'attention.


A la prochaine canicule (ou si ton épouse aime les roses, n'importe quel
autre été), tu peux aller faire un tour dans sa "célèbre" roseraie, ou
plus simplement dans le grand parc autour de la roseraie. C'est agréable
l'été. :)

Mais je suis certain qu'à Rambouillet tu as déjà ce qu'il te faut...

--
Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5
-----
Sur francom.amitie il y a aussi des fois des massages court
-+- K in GNU - La main du masseur dans la culotte du zouave -+-



Avatar
Gabriel Dos Reis
Erwann ABALEA writes:

| A la prochaine canicule (ou si ton épouse aime les roses, n'importe quel
| autre été), tu peux aller faire un tour dans sa "célèbre" roseraie, ou
| plus simplement dans le grand parc autour de la roseraie. C'est agréable
| l'été. :)

on a dû s'y croiser.

-- Gaby
Avatar
Fabien LE LEZ
On 21 Sep 2003 22:03:33 +0200, James Kanze
wrote:

|> Au fait,
|> existe-t-il des systèmes où les 52 lettres ([A-Za-z]) ne sont
|> pas (toutes) présentes ?

Italien.


Je parlais de systèmes informatiques. Existe-t-il réellement un OS sur
lequel les 52 lettres ne sont pas toutes présentes ?
En d'autres termes, l'implémentation suivante a-t-elle un comportement
défini ?

char Majuscule (char n)
{
if (n=='a') return 'A';
else if (n=='b') return 'B';
...
else if (n=='z') return 'Z';
else return n;
}

--
Let's face it, boys: the Trash Heap _is_ all.
-- the Trash Heap, Fraggle Rock, ep 1

Avatar
drkm
"Alain Naigeon" writes:

"Fabien LE LEZ" a écrit dans le message news:


Je parlais de systèmes informatiques. Existe-t-il réellement un OS
sur lequel les 52 lettres ne sont pas toutes présentes ? En
d'autres termes, l'implémentation suivante a-t-elle un
comportement défini ?

char Majuscule (char n)
{
if (n=='a') return 'A';
else if (n=='b') return 'B';
...
else if (n=='z') return 'Z';
else return n;
}


Ben si n n'est aucun des caractères testés, tu renvoies n ;
Ce n'est peut-être pas ce que tu attends, mais c'est
parfaitement défini, * à moins * que tu n'aies obtenu un
avertissement du genre "n is used but has not been
initialized" - avec quelle valeur l'as-tu initialisé ? :-)


Je pense que ce que Fabien demande, c'est si le bout de code
ci-dessus a un comportement défini *parceque* [A-Za-z] est toujours
défini, c'est à dire qu'il n'existera jamais 'a' et non 'A', par
exemple. Ce qui ferait que la donnée en entrée est bien correcte,
mais fait retourner à la fonction une valeur incorrecte.

Mais je ne suis pas Fabien, peut-être me trompe-je.

--drkm


Avatar
Ignace
"Geoffroy Baud" a écrit dans le message de news:
3f6d7d45$0$10417$
Bonjour,
existe-t-il dans les lib std
du C++ un moyen pour comparer deux
string, et que le test sois case
insensitive ?

if ( "NAME" == "name" )
return TRUE;


merci


Moi j'ai trouvé une solution très bête en java. Je ne sais pas si elle est
valide en C++ : je fait subir le même changement de casse aux deux éléments
du test.
Metalangage (prétentieux):

if (str1.toUpper()==str2.toUpper()) ...

Il doit bien y avoir des conversions dans la stl et les classes string non ?
Comme ça, c'est le système qui se débrouille avec les locales.

C'est long, je sais.

-- Ignace

Avatar
kanze
Erwann ABALEA wrote in message
news:...
On 22 Sep 2003 wrote:
Erwann ABALEA wrote in message
news:...
On 21 Sep 2003, James Kanze wrote:

À titre d'exemple : tu donnes un fichier avec les noms des
villes du banlieu parisien à un programme écrit en C. Il y en
aurait pas mal qui s'arrête pile au milieu de la ligne avec
Le-Haÿ-des-Roses.


Pour y avoir habité pendant 15 ans, je confirme que ça s'écrit
bien L'Haÿ-les-roses, même si ça commence par un H (comme hôpital,
l'hôpital, et pas haricot, le haricot).


Merci pour la correction. Je n'y suis jamais habité, et j'avoue que
la seule chose que je connais de la ville, c'est que c'est la plus
grande commune en France avec un ÿ dans son nom:-). Pour la reste,
j'ai bien vu des panneaux sur l'A 86 en passant, mais je n'y ai
jamais prété trop d'attention.


A la prochaine canicule (ou si ton épouse aime les roses, n'importe
quel autre été), tu peux aller faire un tour dans sa "célèbre"
roseraie, ou plus simplement dans le grand parc autour de la roseraie.
C'est agréable l'été. :)

Mais je suis certain qu'à Rambouillet tu as déjà ce qu'il te faut...


La rue de Rambouillet, c'est à Chevreuse. Mais c'est vrai que la nature,
ce n'est pas ce qui y manque. (Pour les roses, en revanche, je
connaissais surtout la Bagatelle, dans le Bois de Boulogne.)

--
James Kanze GABI Software mailto:
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16




Avatar
Gabriel Dos Reis
writes:

| (Pour les roses, en revanche, je
| connaissais surtout la Bagatelle, dans le Bois de Boulogne.)

Ahem.

-- Gaby
Avatar
Christophe Lephay
"Gabriel Dos Reis" a écrit dans le message de
news:
writes:

| (Pour les roses, en revanche, je
| connaissais surtout la Bagatelle, dans le Bois de Boulogne.)

Ahem.


Allons voir si la rose...

Dans le Bois de Boulogne, gare aux épines, vaut mieux mettre des gants ;)

Chris

Avatar
Gabriel Dos Reis
"Christophe Lephay" writes:

| Dans le Bois de Boulogne, gare aux épines, vaut mieux mettre des gants ;)

Oh !

-- Gaby
Avatar
Michaël Monerau
Fabien LE LEZ wrote:
On 21 Sep 2003 22:03:33 +0200, James Kanze
wrote:

Au fait,
existe-t-il des systèmes où les 52 lettres ([A-Za-z]) ne sont
pas (toutes) présentes ?



Italien.


Je parlais de systèmes informatiques. Existe-t-il réellement un OS sur
lequel les 52 lettres ne sont pas toutes présentes ?
En d'autres termes, l'implémentation suivante a-t-elle un comportement
défini ?

char Majuscule (char n)
{
if (n=='a') return 'A';
else if (n=='b') return 'B';
...
else if (n=='z') return 'Z';
else return n;
}


Un switch n'est-il pas plus rapide ? (question dans l'absolu, pas seulement
pour cette fonction d'exemple ;-) ).
--
<=- Michaël "Cortex" Monerau -=>




1 2 3 4 5