int my_getnbr_base(char *str, char *base) { int result; int i; int len; char sign; i = 0; result = 0; sign ='+'; if (str && base) { len = my_strlen(base); check_sign(str, len, base); if (str[i] == '-' || str[i] == '+') sign = sign_base(str, &i); if (check_base(str[i], base) == -1) return (-1); result = calc_nbr(str, i, base, len); if (sign == '-') result = -result; return (result); } else return (-1); }
int my_getnbr_base(char *nbr, char *base) { int less_c; int i; int isneg; int c; i = 0; isneg = 0; less_c = 0; while ((nbr[i] == '+' || nbr[i] == '-') && nbr[i] != 0) { if (nbr[i] == '-') ++less_c; ++i; } if (less_c % 2 == 1) isneg = 1; c = calc_nbr(nbr, i, base); if (isneg) c = -c; return (c); }