Les accents dans uen chaine de caractère - C++ - Programmation
Marsh Posté le 04-07-2005 à 10:22:19
ben ça c'est mité si t'as chaine c'est autre chose que de l'iso 8859-15. normalement tolower doit prendre ça en compte.
Marsh Posté le 04-07-2005 à 10:23:39
Non tolower va remplacer le â en  or moi je veux changer en A
Marsh Posté le 04-07-2005 à 10:25:49
c'est actuellement un problème non résolu tout ça, c'est trop dépendant des locales et du codages des caractères.
Marsh Posté le 04-07-2005 à 10:58:07
à part faire ce que tu fais ... ou tout simplement d'accepter que le l'ascii (ou bien ne pas considérer les accents comme spéciaux).
Marsh Posté le 05-07-2005 à 20:36:56
Et si tu mets le code ASCII des caractères a la place des caractères dans ton switch ?
Marsh Posté le 05-07-2005 à 21:12:20
Moi quand je fais ça :
Code :
|
j'ai des surprises (gcc)
Alors quand tu fais ça :
Code :
|
Si t'es comme moi, tu va en avoir aussi.
Ne serais-ce que
Code :
|
te donne un resultat très spécial.
la table de caractère de l'éditeur n'est pas forcément celle de la console, c'est ce que je veux dire.
Marsh Posté le 05-07-2005 à 21:23:53
c'est parce que vous utilisez 36 charsets différents, c'est tout.
Marsh Posté le 05-07-2005 à 22:35:40
ben tu n'en utilises qu'une. Moi j'utilise UTF-8
Code :
|
std::setlocale(LC_ALL, "" );
très important. bienvenu dans le monde merveilleux des locales
Marsh Posté le 06-07-2005 à 00:30:06
Comprend pas bien a qui tu a répondu pour ton code... En tout cas <glibmm.h> DevCpp y connait pas, donc je n'ai pas pu résoudre l'énigme de pourquoi ce code... Charset ? Palindrome ?
Si c'est apr rapport au charset unique merci (bien que ca marche pas), sinon comment faire n'utiliser qu'une charset, UTF-8 ou pas ? (Systéme Windows pour moi, c'est peut etre le pb)
Marsh Posté le 06-07-2005 à 00:35:38
Qq a donné la solution pour faire ça en Python. Ça doit pouvoir s'applique en d'autres langages avec un peu de bonne volontée
Code :
|
Il suffit juste de trouver la fonction "decomposition" et c'est bon.
A noter que ça marche aussi pour les ç et les Ç par exemple.
Marsh Posté le 06-07-2005 à 00:47:22
mais arrêtez ... vous comprenez rien à rien.
le problème c'est qu'il y a 3 locales / jeu de caractères :
- celle de votre éditeur de code
- celle de votre environnement
- celle de votre compilateur et de celle de votre bibliothèque
une locale peut utiliser des jeu de caractères multioctets (comme UTF-8). Donc toutes les solutions que vous proposez, ça ne marche que pour de l'ASCII étendu, et uniquement en faisant des tables de correspondances simples. Sinon, il faut utiliser des bibliothèques spécialisées. Mais avant toute chose, il faut savoir et gérer ces locales correctement. Ce qu'ici personne ne semble comprendre.
Aurevoir.
Marsh Posté le 06-07-2005 à 00:56:42
Moi je veux bien connaitre et savoir utiliser ces locales perso, j'ai jamais dit le contraire
mais glibmm.h tu la trouve où ?
Marsh Posté le 04-07-2005 à 10:14:40
Voilà je dois faire un petit programme tout simple qui me dit si telle phrase est un palindrome ('alila est un palindrome mais également 'il était ti ATeli'). J'ai juste un problème avec lmes accents à,â,Ä ..)
pour ce faire j'analyse mastring à l'aide de deux pointeur (un pointeur pointe vers le premier caractère et le second sur le dernier je comprare les deux caractères si les deux sont différent de ' ')
Le problème c'est que si str = "àdedA", le première fois que je vais dans mon switch, il va directement dans le cas default
Quelqu'un peut il m'aider car la manipulation de chîane de caractère (surtout les problèmes d'accents c'est pas ce qui me passionne dans la programmation. Merci