#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 : les fonctions de cette librairie ne traitent que les caractères purs ASCII. Les lettres accentuées ne seront donc pas considérées comme des caractères alpha-numériques.
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 signifira 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 aphabé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'emploie 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 :