03. december 2002 - 02:14Der er
3 kommentarer og 1 løsning
atoi(); hvordan i C?
Hej Eksperter
Jeg sidder og skal typecaste en int til char i c i linux, men kan ikke finde den korrekte syntaks for kaldet. Jeg kan heller ikke finde den i stdlib.h (der er kun atoi();).
Jeg fandt en kodestump på nettet hvor der var nogle der havde kodet den men den virker ikke får en parse error i slutningen?
Er der nogle der kender standardkaldet til funktionen uden jeg behøves at kode den selv? Eller nogle der har den korrekte kode til C i linux.
Koden: char *itoa(int val, char *ptr) { int sign = (val < 0) ? -1 : 1; char tmp[16]; int i = 0, j = 0;
val = sign * val; while (val != 0) { tmp[i] = (val % 10) + '0'; val = val / 10; i++; } if (i == 0) { strcpy(ptr, "0"); } else { if (sign == -1) { ptr[j] = '-'; j++; } while (i != 0) { ptr[j] = tmp[i - 1]; i--; j++; } ptr[j] = '\000'; } }
Jeg har prøvet at kalde den på 2 måder:
char *Variabel_p; int Value;
Variable = itoa(Value,Variable_p);
eller bare:
itoa(Value,Variable_p);
Jeg får desuden en Warning: passing arg 1 of 'itoa' makes integer from pionter without a cast.
sprintf liger i stdio sammen med de andre printf'er.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.