#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 : 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 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'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 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 :