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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
#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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
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