Re: wo ist itoa()?

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Mon, 15 Dec 2008 11:05:20 +0100 (CET)

Marc Santhoff wrote:
> Gibt es in FreeBSD nirgends eine Funktion
>
> char* itoa(int)
>
> oder so? (etwa "itoa(int, char[])")

Nein, es gibt keine standardisierte Funktion mit diesem
Namen. Es gibt atoi(), die das Umgekehrte macht, aber
diese ist aus verschiedenen Gründen obsolete und sollte
nicht mehr verwendet werden (stattdessen strtol() & Co.).

Was spricht gegen sprintf(), snprintf() und asprintf()?

> Bisher habe ich - wenn ich denn mal C schreibe - immer "fprintf()" und
> Konsorten benutzt, aber nun brauche ich einen "char*" auf eine
> Zeichenkette, die einen Zahlenwert repräsentiert, den ich reingegeben
> habe.

Vollständiges Beispiel (nicht getestet):

#include <stdio.h>
#include <stdlib.h>
#include <err.h>

int
main (void)
{
        char *mystring;
        int myint;

        myint = 42;
        if (asprintf(&mystring, "%d", myint) < 0)
                err (EXIT_FAILURE, NULL);
        printf ("%s\n", mystring);
        free (mystring);
        return 0;
}

Man merkt, dass C keine Hochsprache ist ... Das zufällig
generierte Zitat in meiner .sig unten passt wie die Faust
aufs Auge.

> Ich kann es selbst schreiben, aber sowas muß es doch fertig geben, oder?

Es gibt fast alles schon fertig. :)

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd
"C is quirky, flawed, and an enormous success."
        -- Dennis M. Ritchie.
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 15 Dec 2008 - 11:05:27 CET

search this site