Gut, 48 auf den int-Wert zu addieren und das ganze dann als char aufzufassen funktioniert auf ASCII-Code-Maschinen, aber gibt es noch einen anderen Weg?
Gut, 48 auf den int-Wert zu addieren und das ganze dann als
char aufzufassen funktioniert auf ASCII-Code-Maschinen, aber
gibt es noch einen anderen Weg?
Mit Ascii-Werten direkt zu hantieren ist tatsächlich nicht die saubere Lösung. Du kannst aber davon ausgehen, dass 0-9 immer an einem Stück irgendwo in der Tabelle steht also addiere einfach den Wert der 0 (also das Charakterzeichen 0).
int x = 0;
char buchstabe = x + ‚0‘;
Nur mal so aus Interesse: Wie schaut das mit Unicode aus?
Nur mal so aus Interesse: Wie schaut das mit Unicode aus?
Kann ich dir leider nichts dazu sagen, weil nie was damit gemacht.
Aber unicode ist eh irgendwie anders, das wird ja soviel ich weiss in 2 Bytes gespeichert ein Zeichen. Ich weiss nicht ob man dass einfach wie char/int explizit umwandeln kann. Hängt sicher von der Implementierung ab, im Standard-C gibt es soviel ich weiss keinen Unicode.
Nimm einfach die Funktion sprintf. Sie arbeitet wie printf, also etwa printf(„Die Zahl ist %d“, zahl); nur nicht auf die Standardausgabe, sondern in einen String. Also genau das was Du suchst.
gruss, Moriarty