C++ redefinir isalpha
velderama
Messages postés
203
Statut
Membre
-
velderama Messages postés 203 Statut Membre -
velderama Messages postés 203 Statut Membre -
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 :
Et la fonction
Affichage
---
Je voulais juste (Le et en) Si quelqu'un voit où se trouve le Kouack ! Merci
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