#include <ctype.h> // <cctype> en C++
int isdigit( int character );
Cette fonction permet de tester si un caractère est un chiffre décimal ou non.
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 chiffre décimal. La valeur 0
indiquera qu'il ne s'agit pas d'un chiffre décimal.
#include <ctype.h> #include <stdbool.h> #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char buffer[80]; printf( "Enter your text : " ); scanf( "%[^\n]", buffer ); bool isCorrect = true; size_t length = strlen( buffer ); for( int i=0; i<length; i++ ) { if ( ! isdigit( buffer[i] ) ) { isCorrect = false; } } if ( isCorrect ) { printf( "Your text (%s) is a number\n", buffer ); } else { printf( "Your text (%s) is not a number\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 your text : toto Your text (toto) is not a number $> ./Sample Enter your text : 456abc Your text (456abc) is not a number $> ./Sample Enter your text : 789 Your text (789) is a number $>
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 :