Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Echange des caractères accentués par leurs homologues non accentués [ Archives / Fichier / Disque ] (lonaur)

samedi 29 janvier 2005 à 14:34:52 | Echange des caractères accentués par leurs homologues non accentués

lonaur

Voilà j'ai un petit problème. Je lis un fichier et je supprime tous les caractères de ponctuation. Le problème c'est que lorsque je rencontre un caractère accentué, la fonction ispunct() ne marche pas. Du coup, j'aimerais pouvoir lire un texte dans un fichier en supprimant tous les caractères accentués pour les remplacer par un caractère non accentué. Par exemple, si j'ai dans mon fichier

Un été superbe.
 
j'aimerais lire en fait

Un ete superbe.

Je ne sais pas si c'est très clair mais j'ai vraiment besoin de votre aide.
Merci d'avance à celles et ceux qui me répondront.

samedi 29 janvier 2005 à 14:54:06 | Re : Echange des caractères accentués par leurs homologues non accentués

BruNews

Administrateur CodeS-SourceS
if(buff[i] == 'é') buff[i] = 'e';
c'est quoi le problème ???

ciao...
BruNews, MVP VC++

samedi 29 janvier 2005 à 14:57:02 | Re : Echange des caractères accentués par leurs homologues non accentués

lonaur

Il faut que de fasse toute une cascade de if pour pouvoir prévoir tous les cas des caractères spéciaux. C'est un peu long quand même mais bon pas de choix alors

samedi 29 janvier 2005 à 15:04:09 | Re : Echange des caractères accentués par leurs homologues non accentués

BruNews

Administrateur CodeS-SourceS
switch(buff[i]) {
 case 'é': case 'è': etc....
   buff[i] = 'e'; break;
  .....

ciao...
BruNews, MVP VC++

samedi 29 janvier 2005 à 15:23:50 | Re : Echange des caractères accentués par leurs homologues non accentués

Hades53

Membre Club
En moins bourrin, on peut voir le truc sous cette forme:

if (buff[i] > 231 && buff[i] < 236) buf[i] = 'e'; //accents des "e" minuscules
else if (buff[i] > 223 && buff[i] < 230) buff[i] = 'a'; //accents des "a" minuscules
else if (buff[i] > 209 && buff[i] < 215) buff[i] = 'O'; //accent des "O" majucules
...

mardi 1 février 2005 à 10:09:32 | Re : Echange des caractères accentués par leurs homologues non accentués

magic_Nono

Membre Club

Joli Hades....


voici la fonction dont il pourra s'inspirer directement:
promis, je la reprend prochainement a ta façon Hades
++

___

void BString::convertEnMajuscule()
{
/// ---------------------------------------------------------------
/// ---------------- BString::convertEnMajuscule() ----------------
/// ---------------------------------------------------------------
/// -----  Objectif : convertir la chaîne en majuscule
/// -----  Auteur(s) : Magic Nono 03/01/04
/// -----  PreCond : texte avec les caracrères d'usage Français
/// -----  PostCond : /
/// -----  Etat  : 1   (-1<0<1<2)
/// -----  Nota 03/01/04 : uniquement les car minuscules...
/// -----  MaJ 17/05/04 : conversion des caractères accentués français et du C cédille
/// ---------------------------------------------------------------
/// -----  Var Utilisées de la classe (2) : m_iTaille ,m_str
/// -----  Var Internes à la fonction (3) : c ,cste ,i
/// -----  Var Utilisées par adresse (1) : m_str
/// -----  Var Masquées (1) : m_str
/// -----  Var In  (1) : m_iTaille
/// -----  Var In-Out (1) : m_str
 static const char cste='A'-'a';
 char c;
 size_t i;
 for(i=0;i<m_iTaille;i++)
 {
  c=m_str[i];
  if(c>='A'&&c<='Z')
   ; //ne rien faire !!
  else
  if(c>='a'&&c<='z')
   m_str[i]=(char)(c+cste); //transtypage pour éviter warning...
  else
   switch(c)
   {
   case'à':
   case'â':
   case'ä':
    m_str[i]='A';
    break;
   case'é':
   case'è':
   case'ê':
   case'ë':
    m_str[i]='E';
    break;
   case'ï':
   case'î':
    m_str[i]='I';
    break;
   case'ö':
   case'ô':
    m_str[i]='O';
    break;
   case'ü':
   case'û':
   case'ù':
    m_str[i]='U';
    break;
   case'ç':
    m_str[i]='C';
    break;
   }
 }
}

___
Magic Nono: l'informagicien!




Cette discussion est classé dans : fichier, caractères, echange, accentués, homologues


Répondre à ce message

Sujets en rapport avec ce message

manipulation fichier texte [ par bencholl ] I / Utilisation de fichiers texteLe fichier "Etud_2002.don" comporte des lignes ainsi structurées (le caractère ';' est utilisé comme séparateur) : NO Utilisation Dev C++ et nom de fichier dynamique [ par briscard ] Bonjour a tous,j'ai un petit problème avec Dev C++, je n'arrive pas a implémenter un vecteur de caractères. je n'ai pas de code sous la main car j'ai Pdf et unicode [ par wizouille ] Je dois créer un fichier pdf écrit en asiatique.j'ai un fichier xml en UTF-8 qui me donne les valeurs des caractères à imprimer.Mais je n'y arrive pa è, é, ë devient e [ par mimieivd ] Existe-t-il une fonction en C qui me permet de transformer mes caractères accentués en caractères non accentués ?Idem pour transformé des lettre MAJ e fonctions [ par pingooo ] Bonjour tout le monde !VOici mon problème: je travaille en C, et je veux faire un logiciel de résolution d'équa diff avec Runge Kutta...jusque là, ça recherche une chaine de caractères dans un fichier [ par Tamahoma ] Bonjour, Je voudrais rechercher une chaine de caractères dans un fichier, il prend le début de cette chaine jusqu'à ce qu'il rencontre le symbole : '> POST caractères accentués [ par scorpyon1903 ] Salut !J'ai écrit un programme en VC++ qui récupère les données d'un formulaire HTML via la méthode POST. Mon problème c'est que les caractères spécia caractères accentués [ par la pince ] Bonjour Je suis débutant en C++ et je suis confronté à un pb qui doit être simple pour vous (enfin je l'espère) Contexte :J'ai besoin pour réaliser u lecture chaines de caractères dans un fichier [ par sandy27 ] je veux lire dans un fichier des chaines de caractères qui vont contenir d'autres fichiers dont je devrai lire les données par la suite. Exemple: nom_ Lire TOUT les caractères d'un fichier binaire [ par harddisk ]


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,406 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.