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
Partager