int zu char*
-
Hallo,
ich hab eine Funktion, die ein int zurückgibt.
Dieses int möchte ich ausgeben mit der Funktion:void putstrxy(byte xp, byte yp, char * str)
Wie wandle ich diesen int in ein char* ?
Ich hab keine stdio oder ähnliches!mfg & danke im voraus
-
In der C++ FAQ findest du einen Artikel zum Thema "einmal Zahl nach String und zurück", die auch einige C-Methoden enthält.
(*grübelt* kein <stdio.h>? Was ist denn das für ein Compiler? Mir fällt zumindest keiner ein, der ohne die Standard-Bibliothek ausgeliefert wird.)
-
Das Programm ist für einen Scanner und ich mach das ganze mit Keil.
Der Scanner unterstützt keine stdio...
-
[Ausklammer]
Du kannst es "zu Fuss" machen.
Lese die Zeichen einzeln aus, und ziehe den Ascii-Wert von '0' davon ab. Dann hast Du die Ziffer.
Mit der Länge des Strings kannst Du bestimmen, welche Stelle das in der Zahl ist und entsprechend mit der Zehnerpotenz mulitplizieren.
[/Ausklammer]Sorry, habs verkehrt'rum gedacht, das war char* zu int
-
Wenn du keine Bibliotheksfunktionen zur Hand hast, könntest du dass ganze so machen.
1. Stellenanzahl der Zahl ermitteln.
2. Zahl durch höchste Stellenwertigkeit teilen (Ganzzahlteilung)
3. Den Rest der Teilung ermitteln (Modulo)
4. Neue zu teilende Zahl ist der Rest
5. Gehe zu 2Beispiel: Zahl 1234
1234 / 1000 = 1 Rest 234 234 / 100 = 2 Rest 34 34 / 10 = 3 Rest 4 4 / 1 = 4 Rest 0
Die Ergebnisse der Ganzahldivision kannst du via ASCII Tabelle in einem char* speichern.
Grüsse
Tobi
-
Einfach so etwas:
int IntToStr(int number, char * buf, int n) { char neg = (number >= 0 ? 0 : 1); int len = 1, tmp = number, i = 0; while(tmp/=10) ++len; if(len + neg >= n) return -1; // size too small if(buf == NULL) return -2; // buffer not valid if(neg) { number *= -1; buf[0] = '-'; ++buf; } for(i = len-1; i >= 0; --i) { buf[i] = '0' + (number % 10); number /= 10; } buf[len] = 0; return len + neg; }
BR
Vinzenz
-
warum benutzt du nicht
#include <stdlib.h> char* itoa (int zahl, char *string, int radix); bzw. int atoi(const char *nptr);
damit musst du das rad nicht neu erfinden...
-
fragensteller123 schrieb:
Ich hab keine stdio oder ähnliches!
escapete schrieb:
warum benutzt du nicht [...] atoi
damit du rumtrollen kannst...
-
danke für die lösungen. hab's wie evilissimo gemacht.
klappt gut.