Normaliser des lettres
firas scofield
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
salut
je veux corriger lettres d'un mot de façon que lorsque je trouve un caractere comme(é,è) je le remplace par 'e'
et à par 'a' ....
j'ai essayer avec ce code mais n'a pas marché
je veux corriger lettres d'un mot de façon que lorsque je trouve un caractere comme(é,è) je le remplace par 'e'
et à par 'a' ....
j'ai essayer avec ce code mais n'a pas marché
void conv(char mot[27]) { int i; for(i=0;i<strlen(mot);i++) switch(mot[i]) { case 'à':case 'á':case 'â' :case 'ã': case'ä' :case 'å': mot[i]='a'; case 'ç': mot[i]='c'; case 'è':case 'é':case 'ê' :case 'ë': mot[i]='e'; case 'î':case 'í':case 'ì' : mot[i]='i'; case 'ò':case 'ó':case 'õ' :case 'ö': mot[i]='o'; case 'ú':case 'û':case 'ü' : mot[i]='u'; case 'ñ': mot[i]='n'; default: mot[i]=toupper(mot[i]); } for(i=0;i<strlen(mot);i++) mot[i]=toupper(mot[i]); }
A voir également:
- Normaliser des lettres
- Code ascii des lettres - Guide
- Normaliser mp3 - Télécharger - Édition & Montage
- Mon clavier n'écrit plus les lettres - Forum Clavier
- Comment faire pour débloquer mon clavier d'ordinateur ? ✓ - Forum PC portable
- Triez cette liste par ordre alphabétique des villes et par note de la meilleure à la moins bonne. quel mot est formé par les 8 premières lettres de la colonne code ? ✓ - Forum Excel
2 réponses
Salut firas scofield,
C'est quoi que tu normalises : la saisie ? Tu récupères une saisie en Unicode ?
Dal
C'est quoi que tu normalises : la saisie ? Tu récupères une saisie en Unicode ?
Dal
c'est à dire lorsque je saisie une chaine de caractere comme 'aprés' il me retourne 'apres' , .... je veut eliminer tous les lettres speciaux comme é,è,à... et les remplacer par des lettres alphabetique e,a..
Bonjour,
Tu peux aussi passer par 2 tableaux :
char source[]="àéèêë...";
char destination[]="aeeee...";
Et ensuite tu fais une boucle for sur tous les caractères de source, et tu remplaces source[i] par destination[i] dans la chaîne de caractères de ton choix (tu peux utiliser la fonction strchr()).
Sinon, attention à la gestion des caractères... Quel encodage utilises-tu ?
Cdlt,
Tu peux aussi passer par 2 tableaux :
char source[]="àéèêë...";
char destination[]="aeeee...";
Et ensuite tu fais une boucle for sur tous les caractères de source, et tu remplaces source[i] par destination[i] dans la chaîne de caractères de ton choix (tu peux utiliser la fonction strchr()).
Sinon, attention à la gestion des caractères... Quel encodage utilises-tu ?
Cdlt,
@faiddy : salut fiddy, bonne idée !
@firas : il faut que ton terminal avec lequel tu récupères la saisie utilise le même encodage de caractères que ton code source, sinon, tu vas comparer des choses différentes. Là ce que tu as copié sur le forum semble être de l'Unicode (ou du moins c'est comme cela que CCM l'envoie à mon navigateur), et ton code n'est pas conçu pour traiter de l'Unicode et ne compile pas chez moi car ces caractères Unicode sont encodés sur plus d'un char...
En supposant que ta saisie n'est pas en Unicode, et que chaque caractère que tu récupères par la saisie est encodé sur un seul char, pour simplifier, tu pourrais faire la chose suivante :
- faire un programme où tu saisis à la ligne de commande ces caractères accentués,
- et qui affiche la valeur numérique du char correspondant, que tu notes
- utiliser ensuite ces valeurs numériques dans ton programme pour normaliser ta saisie
Ta normalisation fonctionnera sur ton poste et sur tous les postes où le terminal utilise le même encodage.
Sous Windows tu détermines l'encodage actuellement utilisé par le terminal CMD en utilisant la commande chcp. Tu peux éventuellement aussi trouver ces codes avec des tables affichant les codes pour le "code page" utilisé par Windows.
Dal
@firas : il faut que ton terminal avec lequel tu récupères la saisie utilise le même encodage de caractères que ton code source, sinon, tu vas comparer des choses différentes. Là ce que tu as copié sur le forum semble être de l'Unicode (ou du moins c'est comme cela que CCM l'envoie à mon navigateur), et ton code n'est pas conçu pour traiter de l'Unicode et ne compile pas chez moi car ces caractères Unicode sont encodés sur plus d'un char...
En supposant que ta saisie n'est pas en Unicode, et que chaque caractère que tu récupères par la saisie est encodé sur un seul char, pour simplifier, tu pourrais faire la chose suivante :
- faire un programme où tu saisis à la ligne de commande ces caractères accentués,
- et qui affiche la valeur numérique du char correspondant, que tu notes
- utiliser ensuite ces valeurs numériques dans ton programme pour normaliser ta saisie
Ta normalisation fonctionnera sur ton poste et sur tous les postes où le terminal utilise le même encodage.
Sous Windows tu détermines l'encodage actuellement utilisé par le terminal CMD en utilisant la commande chcp. Tu peux éventuellement aussi trouver ces codes avec des tables affichant les codes pour le "code page" utilisé par Windows.
Dal
@fiddy : salut fiddy, bonne idée !
@firas : il faut que ton terminal avec lequel tu récupères la saisie utilise le même encodage de caractères que ton code source, sinon, tu vas comparer des choses différentes. Là ce que tu as copié sur le forum semble être de l'Unicode (ou du moins c'est comme cela que CCM l'envoie à mon navigateur), et ton code n'est pas conçu pour traiter de l'Unicode et ne compile pas chez moi car ces caractères Unicode sont encodés sur plus d'un char...
En supposant que ta saisie n'est pas en Unicode, et que chaque caractère que tu récupères par la saisie est encodé sur un seul char, pour simplifier, tu pourrais faire la chose suivante :
- faire un programme où tu saisis à la ligne de commande ces caractères accentués,
- et qui affiche la valeur numérique du char correspondant, que tu notes
- utiliser ensuite ces valeurs numériques dans ton programme pour normaliser ta saisie avec le procédé de ton choix (switch/case ; tableaux de substitutions ...)
Ta normalisation fonctionnera sur ton poste et sur tous les postes où le terminal utilise le même encodage.
Sous Windows tu détermines l'encodage actuellement utilisé par le terminal CMD en utilisant la commande chcp. Tu peux éventuellement aussi trouver ces codes avec des tables affichant les codes pour le "code page" utilisé par Windows.
Dal
@firas : il faut que ton terminal avec lequel tu récupères la saisie utilise le même encodage de caractères que ton code source, sinon, tu vas comparer des choses différentes. Là ce que tu as copié sur le forum semble être de l'Unicode (ou du moins c'est comme cela que CCM l'envoie à mon navigateur), et ton code n'est pas conçu pour traiter de l'Unicode et ne compile pas chez moi car ces caractères Unicode sont encodés sur plus d'un char...
En supposant que ta saisie n'est pas en Unicode, et que chaque caractère que tu récupères par la saisie est encodé sur un seul char, pour simplifier, tu pourrais faire la chose suivante :
- faire un programme où tu saisis à la ligne de commande ces caractères accentués,
- et qui affiche la valeur numérique du char correspondant, que tu notes
- utiliser ensuite ces valeurs numériques dans ton programme pour normaliser ta saisie avec le procédé de ton choix (switch/case ; tableaux de substitutions ...)
Ta normalisation fonctionnera sur ton poste et sur tous les postes où le terminal utilise le même encodage.
Sous Windows tu détermines l'encodage actuellement utilisé par le terminal CMD en utilisant la commande chcp. Tu peux éventuellement aussi trouver ces codes avec des tables affichant les codes pour le "code page" utilisé par Windows.
Dal
@faiddy : salut fiddy, bonne idée !
@firas : il faut que ton terminal avec lequel tu récupères la saisie utilise le même encodage de caractères que ton code source, sinon, tu vas comparer des choses différentes. Là ce que tu as copié sur le forum semble être de l'Unicode (ou du moins c'est comme cela que CCM l'envoie à mon navigateur), et ton code n'est pas conçu pour traiter de l'Unicode et ne compile pas chez moi car ces caractères Unicode sont encodés sur plus d'un char...
En supposant que ta saisie n'est pas en Unicode, et que chaque caractère que tu récupères par la saisie est encodé sur un seul char, pour simplifier, tu pourrais faire la chose suivante :
- faire un programme où tu saisis à la ligne de commande ces caractères accentués,
- et qui affiche la valeur numérique du char correspondant, que tu notes
- utiliser ensuite ces valeurs numériques dans ton programme pour normaliser ta saisie avec le procédé de ton choix (switch/case, méthode de fiddy,...)
Ta normalisation fonctionnera sur ton poste et sur tous les postes où le terminal utilise le même encodage.
Sous Windows tu détermines l'encodage actuellement utilisé par le terminal CMD en utilisant la commande chcp. Tu peux éventuellement aussi trouver ces codes avec des tables affichant les codes pour le "code page" utilisé par Windows.
Dal
@firas : il faut que ton terminal avec lequel tu récupères la saisie utilise le même encodage de caractères que ton code source, sinon, tu vas comparer des choses différentes. Là ce que tu as copié sur le forum semble être de l'Unicode (ou du moins c'est comme cela que CCM l'envoie à mon navigateur), et ton code n'est pas conçu pour traiter de l'Unicode et ne compile pas chez moi car ces caractères Unicode sont encodés sur plus d'un char...
En supposant que ta saisie n'est pas en Unicode, et que chaque caractère que tu récupères par la saisie est encodé sur un seul char, pour simplifier, tu pourrais faire la chose suivante :
- faire un programme où tu saisis à la ligne de commande ces caractères accentués,
- et qui affiche la valeur numérique du char correspondant, que tu notes
- utiliser ensuite ces valeurs numériques dans ton programme pour normaliser ta saisie avec le procédé de ton choix (switch/case, méthode de fiddy,...)
Ta normalisation fonctionnera sur ton poste et sur tous les postes où le terminal utilise le même encodage.
Sous Windows tu détermines l'encodage actuellement utilisé par le terminal CMD en utilisant la commande chcp. Tu peux éventuellement aussi trouver ces codes avec des tables affichant les codes pour le "code page" utilisé par Windows.
Dal