#include <ctype.h> // <cctype> en C++
int isalpha( int character );
Cette fonction permet de tester si un caractère est alphabétique ou non. Un caractère sera considéré comme alphabétique s'il est de lettres minuscules ou de lettres majuscules.
Rappel : ces fonctions travaillent sur des valeurs représentables sous forme d'unsigned char (ou EOF) et leur comportement dépend de la localisation courante. Dans la localisation "C", les lettres accentuées ne sont pas considérées comme des caractères alphabétiques.
int car la fonction peut aussi accepter la valeur -1 (EOF - End Of File) correspondant à la fin d'un
flux.
La valeur de retour doit être interprétée en tant que valeur booléenne. Une valeur positive non nulle signifiera qu'il s'agit bien d'un caractère alphabétique. La valeur 0
indiquera qu'il ne s'agit pas d'un caractère alphabétique.
#include <ctype.h> #include <stdbool.h> #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char buffer[80]; printf( "Enter your last name : " ); scanf( "%[^\n]", buffer ); bool isCorrect = true; size_t length = strlen( buffer ); for( int i=0; i<length; i++ ) { if ( isalpha( buffer[i] ) == false && isblank( buffer[i] ) == false ) { isCorrect = false; } } if ( isCorrect ) { printf( "Your last name (%s) is correct\n", buffer ); } else { printf( "Your last name (%s) is not correct\n", buffer ); } return EXIT_SUCCESS; }
Attention : cet exemple utilise des éléments de syntaxe définis dans le standard C99. L'emploi de l'option -std=c99 sur
la ligne de compilation de votre exemple est donc requis.
Voici un petit exemple d'exécution de ce programme :
$> gcc -o Sample -Wall -std=c99 Sample.c $> ./Sample Enter you last name : c3po Your last name (c3po) is not correct $> ./Sample Enter you last name : De La Vega Your last name (De La Vega) is correct $>
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :