Normaliser des lettres
Fermé
firas scofield
Messages postés
14
Date d'inscription
dimanche 30 mars 2014
Statut
Membre
Dernière intervention
5 novembre 2016
-
3 déc. 2015 à 23:07
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 7 déc. 2015 à 10:23
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 7 déc. 2015 à 10:23
A voir également:
- Normaliser des lettres
- Code ascii des lettres - Guide
- Faire un coeur avec des lettres ✓ - Forum Logiciels
- 100 € en lettres - Forum Réseaux sociaux
- Normaliser mp3 - Télécharger - Édition & Montage
- Triez la liste comme sur cette illustration (attention, on ne voit que le début …). quel est le mot formé par les 6 dernières lettres de la colonne code ? - Forum Excel
2 réponses
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
Modifié par [Dal] le 4/12/2015 à 15:02
Modifié par [Dal] le 4/12/2015 à 15:02
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
firas scofield
Messages postés
14
Date d'inscription
dimanche 30 mars 2014
Statut
Membre
Dernière intervention
5 novembre 2016
5 déc. 2015 à 06:00
5 déc. 2015 à 06:00
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..
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 841
6 déc. 2015 à 19:02
6 déc. 2015 à 19:02
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,
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
7 déc. 2015 à 10:21
7 déc. 2015 à 10:21
@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
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
Modifié par [Dal] le 7/12/2015 à 11:04
Modifié par [Dal] le 7/12/2015 à 11:04
@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
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
Modifié par [Dal] le 7/12/2015 à 10:24
Modifié par [Dal] le 7/12/2015 à 10:24
@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