2010-02-09 3 views
6

Ich suchte nach einer Möglichkeit, eine ganze Zahl in eine Zeichenfolge auf eine portable Art und Weise zu konvertieren (portable unter mindestens Windows & Linux und x86 und x86_64) und ich itoa(X) als Standard wie atoi(1) Standard sein.Wie wandle ich eine ganze Zahl in eine Zeichenfolge um?

Aber ich lese die folgenden in der Wikipedia-Eintrag:

Die itoa Funktion ist eine weit verbreitete Nicht-Standard-Erweiterung der Standard-C-Programmiersprache. Es kann nicht portabel verwendet werden, da es in keinem der C-Sprachstandards definiert ist; Compiler bieten es jedoch oft im nichtkonformen Modus über den Header an, da es ein logisches Gegenstück zur Standardbibliotheksfunktion atoi ist.

Also ich würde gerne wissen, ob es eine Möglichkeit gibt, es in einer tragbaren Weise zu tun oder nicht. Falls ich meine eigene Funktion schreiben muss, mit welchen Dingen muss ich vorsichtig sein?

+0

während Itoa nicht _offiziell_ tragbar ist, bezweifle ich, dass Sie jemals ein Problem damit laufen werden. und wenn Sie es tun, ist es eine sehr einfache Funktion zu schreiben. –

+0

Sie könnten immer Ihre eigenen implementieren: P –

Antwort

1

Meistens verwenden Sie nur printf ("% d");

http://en.wikipedia.org/wiki/Printf

Sie können sprintf verwenden, wenn Sie es in einem Puffer benötigen, aber wie oft konvertieren Sie in einen String und schreiben Sie es nicht auf eine Datei oder Ausgabegerät?

0

Wenn Sie das nicht oft genug machen, wie wäre es mit einer Laufzeitbibliotheksroutine, die einige Zahlen in den Speicher schreibt, die Ergebnisse analysiert und einen Codierungstyp speichert? Von nun an schalten Sie einfach Ihren "Encoding Type" ein, um auszuwählen, welche Konvertierungsroutine verwendet werden soll.