Bonjour,

J'ai besoin de tester le fait qu'un paramètre soit un nombre ou non. Pour ce faire, je pensais utiliser isdigit(), et ai donc écrit le programme de test suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
 
int main (void)
{
    int i;
    char c;
 
    i=2;
    printf ("isdigit (%d) = %d\n", i, isdigit(i));
 
    i=10;
    printf ("isdigit (%d) = %d\n", i, isdigit (i));
 
    c='2';
    printf ("isdigit (%c) = %d\n", c, isdigit((int)c) );
    return EXIT_SUCCESS;
}
Mon problème survient lorsque j'exécute ce code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
heimdall> gcc -o test_isdigit -Wall -ansi -pedantic -O2 test_isdigit.c
heimdall> ./test_isdigit
isdigit (2) = 0
isdigit (10) = 0
isdigit (2) = 4
Est-ce que quelqu'un pourrait
  • Soit m'expliquer le résultat
  • Soit me dire ce que je fais de mal ?

Merci