Erschreckend musste ich heute feststellen, dass die libc gar keine atoull Funktion mitbringt, sondern nur eine atoll. Das Problem lässt sich aber einfacher lösen als gedacht. Hier die Funktion in zwei Varianten.
void atoull(char *s, unsigned long long *n)
{
*n = 0;
while ('0' <= *s && *s <='9')
*n = (*n)*10 + *s++ - '0';
}
unsigned long long atoull(char *s)
{
unsigned long long n = 0;
while ('0' <= *s && *s <='9')
n = n*10 + *s++ - '0';
return n;
}
void atoul(char *s, unsigned long *n)
{
*n = 0;
while ('0' <= *s && *s <='9')
*n = (*n)*10 + *s++ - '0';
}
unsigned long atoul(char *s)
{
unsigned long n = 0;
while ('0' <= *s && *s <='9')
n = n*10 + *s++ - '0';
return n;
}
Viel Spass damit :)