Convertir un char* en int
Bonjour,
Tout d'abord je tiens à préciser que je sais que cette fonction existe dans une librairie, si je vous appel au secour c'est parce que j'essaie de la recoder !
Voila mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| #include<stdio.h>
#include<stdlib.h>
int my_strlen(char *str)
{
int i;
i = 0;
while (str[i] != '\0')
{
i++;
}
return (i);
}
int my_get_nbr(char *str)
{
int res;
int i;
int multiplicateur;
i = 0;
while(str[i] != '\0')
{
if ((str[i]) != ('0'||'1'||'2'||'3'||'4'||'5'||'7'||'8'||'9'))
return (0);
else
i++;
}
i--;
res = (0 - '0');
multiplicateur = (1 - '0');
while (i >= 0)
{
res = res + ((str[i] - '0') * multiplicateur);
i--;
multiplicateur = multiplicateur * (10 - '0');
}
printf("%i'\n'", res);
return (res);
}
int main(int ac, char **av)
{
my_get_nbr(av[1]);
} |
Même sans ma condition qui apparemment bloque le programme j'avais des valeurs complétements éronées.
Merci de m'éclairer !! Bonne soirée.