#include <ctype.h> // <cctype> en C++
int isalnum( int character );
Cette fonction permet de tester si un caractère est alpha-numérique ou non. Un caractère sera considéré comme alpha-numérique s'il est une lettre (minuscule ou majuscule) ou un chiffre.
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 alphanumé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 signifiera qu'il s'agit bien d'un caractère alpha-numérique. La valeur 0
indiquera qu'il ne s'agit pas d'un caractère apha-numérique.
#include <ctype.h> #include <stdbool.h> #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char buffer[80]; printf( "Enter your login (only alpha-numeric characters) : " ); scanf( "%s", buffer ); bool isCorrect = true; size_t length = strlen( buffer ); for( int i=0; i<length; i++ ) { if ( isalnum( buffer[i] ) == false ) { isCorrect = false; } } if ( isCorrect ) { printf( "Your login is correct\n" ); } else { printf( "Your login is not correct\n" ); } 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 login (only alpha-numeric characters) : Bond Your login is correct $> ./Sample Enter you login (only alpha-numeric characters) : r2d2 Your login is correct $> ./Sample Enter you login (only alpha-numeric characters) : éléphant Your login is not correct $> ./Sample Enter you login (only alpha-numeric characters) : #!@ Your login is not 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 :