Participer au site avec un Tip
Rechercher
 

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 :

Fonction isdigit

La fonction iscntrl La fonction isgraph


Entête à inclure

#include <ctype.h>  // <cctype> en C++

Fonction isdigit

int isdigit( int character );

Cette fonction permet de tester si un caractère est un chiffre décimal ou non.

Paramètre

Valeur de retour

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.

Exemple de code

#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
$>

Sujets connexes

isalnum
isalpha
isblank
iscntrl
isgraph
islower
isprint
ispunct
isspace
isupper
isxdigit


La fonction iscntrl La fonction isgraph