| strings/number-in-base-10.c - En funktion der konverterer et tal n i base talsystemet (en streng) til et decimalt tal. | Lektion 10 - slide 30 : 51 Program 1 |
/* Convert the string n to a decimal number in base and return it.
Assume that input string is without errors */
int to_decimal_number(char *n, int base){
int ciffer_number, res = 0;
char *ciffer_ptr = &n[0], ciffer = *ciffer_ptr;
do {
if (ciffer >= '0' && ciffer <= '9')
ciffer_number = ciffer - '0';
else if (ciffer >= 'a' && ciffer <= 'z')
ciffer_number = ciffer - 'a' + 10;
else ciffer_number = -1; /* error */
if (ciffer_number >= 0 && ciffer_number < base)
res = res * base + ciffer_number;
ciffer_ptr++; ciffer = *ciffer_ptr;
}
while (ciffer != '\0');
return res;
}