C++ fonction qui repere les alphanumériques et les accents - C++ - Programmation
Marsh Posté le 16-11-2007 à 23:27:51
Peut être tu pourrais utiliser le code ascii des caracteres...
Marsh Posté le 17-11-2007 à 00:58:45
Toinou87 a écrit : c'est a dire? |
Çà :
Code :
|
Marsh Posté le 17-11-2007 à 01:07:08
ReplyMarsh Posté le 17-11-2007 à 09:17:34
Splinter_7 a écrit : Tu devrais plus utiliser le code ascii... |
Le code ascii c'est la PIRE des solutions. On a pas inventer les locale pour se toucher la bite
Y a enormement de problème et d'ambiguités sur les systèmes, le scharset etc ...
Marsh Posté le 17-11-2007 à 10:50:08
Avec le fonction isalnum tu vas être obligé de tester chacun de tes caractères
if(isalnum((unsigned char) 'é'))
etc...
je me trompe peut être....
Marsh Posté le 17-11-2007 à 11:45:27
Splinter_7 a écrit : Avec le fonction isalnum tu vas être obligé de tester chacun de tes caractères |
Et tu t'es pas dit qu'il suffit de correctement tester le contenu de sa chaîne avec isalnum() et la bonne locale sans se faire chier à écrire plus de code (c'est-à-dire, en gros, 1 ligne de plus pour mettre la locale par rapport à isalnum() tout seul), et qu'en plus cette solution permet de gérer facilement plusieurs langues ?
Alors que ta super solution 1. n'est pas portable et 2. demande à maintenir un tableau annexe avec tous les caractères accentués qui sont censés être reconnus comme alphanumérique... et donc de faire une boucle de tests en plus.
Sans compter que le jour où tu dois ajouter l'allemand, tu recommences depuis le début, alors qu'avec les locales, t'as juste un test de plus à écrire pour mettre la bonne.
Marsh Posté le 17-11-2007 à 12:05:04
comment tu utilises ces locales? je suis pas familier avec ca et oui j'aimerai pas avoir a rentrer tous les caractères accentués
Marsh Posté le 17-11-2007 à 12:14:17
Trap D t'a donné l'exemple tout prêt.
Sous *nix, tu peux zieuter dans /usr/lib/locale les différentes localisations installée, trouve un fr* qui ait un sous-répertoire LC_CTYPE et ça roule.
Moi j'ai de la chance, sur mon système le LC_CTYPE n'est défini que pour fr_CA.ISO8859-1
Marsh Posté le 15-11-2007 à 14:03:27
Bonjour, est ce qu'il y aurait une fonction en C++ du type isalnum() qui prend en compte aussi les accents (font ch*** ces anglais^^). Ou autrement les alphabetiques et accents, je me debrouillerai pour rajouter le cas numérique derriere. Merci