ISALPHA |
Est-ce un alphabétique ? |
---|---|
Langage C++ | cctype (ctype.h) |
Syntaxe
int isalpha(int caractere) |
Paramètres
Nom | Description |
---|---|
caractere | Ce paramètre permet d'indiquer le caractère à vérifier |
Description
Cette fonction indique si le caractère est alphanumérique (A à Z et a à z).
Remarques
- La fonction isalpha() renvoie une valeur différente de zéro si caractere est une lettre de l'alphabet; sinon, zéro est retourné.
- Ce qui constitue une lettre de l'alphabet peut varier d'une langue à l'autre. Pour l'anglais, ce sont les lettres majuscules et minuscules A à Z. En français, ce sont les mêmes lettres mais avec des accents et les accents ne sont pas inclus par cette fonction. Ainsi, si vous testez un «e» accent aiguë, soit «é», vous aurez comme réponse de zéro, mais si vous tester «e», il sera différente de zéro.
- Définition et utilité : La fonction isalpha est une fonction standard de la bibliothèque C++ (définie dans <cctype>) permettant de vérifier si un caractère est une lettre alphabétique (majuscule ou minuscule). Elle est particulièrement utile pour la validation d'entrées utilisateur et le traitement de textes.
- Prise en charge des majuscules et minuscules : isalpha reconnaît uniquement les lettres de l'alphabet anglais, soit les majuscules (A à Z) et les minuscules (a à z). Les caractères accentués (é, à, ç), les chiffres (0 à 9) et les symboles (@, #, !) ne sont pas considérés comme alphabétiques.
- Dépendance au ensemble de caractères : La fonction isalpha fonctionne conformément aux paramètres régionaux (locale) définis dans le programme. Par défaut, elle suit la locale "C", ne reconnaissant pas les lettres accentuées comme alphabétiques. Pour gérer d'autres alphabets, il faut utiliser std::isalpha avec std::locale.
- Comportement avec des valeurs non valides : isalpha attend un argument convertible en unsigned char ou EOF. Passer un nombre négatif ou un caractère spécial non défini dans unsigned char peut entraîner un comportement indéfini, notamment si les locales sont activées.
- Alternative avec std::isalpha de <locale> : Pour une gestion plus avancée, notamment des caractères accentués, il est préférable d'utiliser std::isalpha avec std::locale :
- Utilisation dans des algorithmes de traitement de texte : isalpha est souvent utilisé dans des programmes de traitement de texte, comme la comptabilisation des lettres dans une chaîne ou la validation des entrées utilisateur. Par exemple, dans un programme comptant uniquement les lettres d'une phrase, on peut l'intégrer ainsi :
Ici, é est reconnu comme une lettre dans la locale française.
Ici, seules les lettres "BonjourMonde" sont comptées, et le résultat est 10.
Exemples
Voici quelques exemples typiques de l'utilisation de cette fonction :
- #include <iostream>
- #include <cstdio>
- #include <cstdlib>
- #include <cctype>
-
- char * BoolToStr(bool value) {
- switch(value) {
- case false:return "false";
- case true:return "true";
- }
- }
-
- bool IsValidName(const char * string) {
- int I;
- for(int I = 0; I < strlen(string); I++) {
- if(!(isalpha(string[I]) || string[I] == '-' || string[I] == ' ')) {
- return false;
- }
- }
- return true;
- }
-
- int main()
- {
- std::cout << "«Sylvain123» est un nom valide=" << BoolToStr(IsValidName("Sylvain123")) << std::endl;
- std::cout << "«Sylvain» est un nom valide=" << BoolToStr(IsValidName("Sylvain")) << std::endl;
- std::cout << "«Sylvain Maltais» est un nom valide=" << BoolToStr(IsValidName("Sylvain Maltais")) << std::endl;
- std::cout << "«Sylvain II» est un nom valide=" << BoolToStr(IsValidName("Sylvain II")) << std::endl;
- std::cout << "«Jean-Francois» est un nom valide=" << BoolToStr(IsValidName("Jean-Francois")) << std::endl;
- std::cout << "«Jean+Francois» est un nom valide=" << BoolToStr(IsValidName("Jean+Francois")) << std::endl;
- return 0;
- }
on obtiendra le résultat suivant :
«Sylvain123» est un nom valide=false«Sylvain» est un nom valide=true
«Sylvain Maltais» est un nom valide=true
«Sylvain II» est un nom valide=true
«Jean-Francois» est un nom valide=true
«Jean+Francois» est un nom valide=false
Ce exemple affichera "A est une lettre." car A est bien une lettre alphabétique :
Voir également
Langage de programmation - C++ - Référence de procédures et fonctions - isalnum
Langage de programmation - C - Référence de procédures et fonctions - isalpha
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 732.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 150.