C++ redefinir isalpha

Fermé
velderama Messages postés 199 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 11 mai 2011 - 24 avril 2008 à 16:58
velderama Messages postés 199 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 11 mai 2011 - 24 avril 2008 à 17:41
Bonjour,

J'ai tenté de redefinir la fonction isalpha(fonction predefini ).

J'aimerai que seulement les caracteres alphabetiques et les caracteres accentués puissent valoir true !

Par contre il laisse passer des caracteres que je ne souhaite pas ! exemple ici (",8, : ,)

voila la chaine et le main :
#include <iostream>

using namespace std;

bool my_isalpha(char c);
int main(int argc, char *argv[]){
    
   unsigned beg = 0;
   unsigned end = 1;
     string machaine = "picouly \"68 mon amour\"dormesson bernard henry levy : Le Diable en tête";
      for(unsigned no_mot=0;end <machaine.size();++no_mot){
                   
     for(;end < machaine.size()&& my_isalpha(machaine[end]);++end);
                
                //beg=debut du mot end-beg= taille du mot 
                string mot(machaine,beg,end-beg);//recuperation du mot                            
               
               if(mot.size()<3 ){//si c'est un mot court
                
                cout<<" "<<mot<<endl;
                }//fi             
                beg = end + 1;
                end = beg + 1;
              }  //fin
              
   system("PAUSE");   
   return 0;
}//main


Et la fonction
bool my_isalpha(char c)
  {
  // Si c est un caractere alphabetique
  if(isalpha(c)) 
    return true ;
  else	// Sinon...
    {
   switch(c)  // Pour les ...
      {
      case 'à' : // ..'a' accentués
      case 'â' :
      case 'é' : // ..'e' accentués
      case 'è' : 
      case 'ê' :
      case 'ë' :
      case 'î' : // ..'i' accentués
      case 'ï' :
      case 'ô' : // ..'o' accentués
      case 'ù' : // ..'u' accentués
      case 'ç' : //...ç
        return true ;	// Sortie TRUE
      break ;
      default  : // Pour les autres
        return false ;	// Sortie FALSE
      break ;
      } ;//switch
    }
  }



Affichage
"
8
:
Le
en

---

Je voulais juste (Le et en) Si quelqu'un voit où se trouve le Kouack ! Merci

1 réponse

velderama Messages postés 199 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 11 mai 2011 10
24 avril 2008 à 17:41
Personne ne voit le probleme?
0