diff options
Diffstat (limited to 'lib/numbers.c')
-rw-r--r-- | lib/numbers.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/numbers.c b/lib/numbers.c index 8334dd4..9f032b5 100644 --- a/lib/numbers.c +++ b/lib/numbers.c @@ -1,11 +1,15 @@ #include "numbers.h" +/* Cette fonction lit un nombre. Elle va chercher absolument à traduire la chaîne passée en argument en un nombre. Si +ce nombre n'est pas valide, alors l'int valid est mis à faux. Cette fonction reconnais les nombres en décimaux, les nombres +en octal préfixés avec 0 et les nombres en hexadécimal préfixés avec 0x. */ + int char_to_number(char *st, int *valid) { int whattype = 0, result = 0; - + *valid = 0; - + if (*st == '0') { st++; if (*st == 'x') { @@ -18,7 +22,7 @@ int char_to_number(char *st, int *valid) return 0; } } - + while (*st) { switch (whattype) { case 0: @@ -52,7 +56,7 @@ int char_to_number(char *st, int *valid) } st++; } - + *valid = 1; return result; } |