int nach char (sorry)
-
Hi Leute.
Ich verzweifle langsam an einer Sache:
Ich habe ein Chararray (char* ca), in das ich nun nach und nach Chars einfügen möchte. Dafür hole ich mir mit rand() Zufalls-Integers im Bereich 32 bis 126. Diese aber nun als Char in mein Array zu bekommen stellt mich vor eine scheinbar unlösbare Aufgabe. Irgend wie bin ich zu blöd dafür.Problem: Mein C kennt anscheinend keine Funktion itoa() ! Bitte diese nicht in Erwägung ziehen.
HILFE
Gruß raZe
-
sprintf, snprintf
-
Was genau willst du erreichen? Wenn du deine Zufallszahl in Textform darstellen willst, empfiehlt sich ein Blick in die C++ FAQ ("Einmal Zahl und zurück"). Wenn du einfach nur das Zeichen mit der ASCII-Code deiner Zufallszahl brauchst (der Wertebereich legt es nahe), kannst du einfach zuweisen:
ca[ind]=zufzahl;
-
Zweiteres ist der Fall. Danke.
omg. Es geht - ich war mir aber ganz sicher ich hätte es vorher schon so versucht und es hätte einen cast-Fehler gegeben. Danke noch mals!
-
Hmm zufrüh gefreut.
Hatte mittlerweileile das Chararray ohne Pointer definiert.char ca[size];
ca[pos] = 32 + zufallszahl;und das ging dann zu kompilieren. Wenn ich es aber so kompiliere
char* ca[size];
ca[pos] = 32 + zufallszahl;gibts leider ein
error: invalid conversion from int to char*
Kannst Du mir da vielleicht noch mal helfen?
<--- leider noch neu in C
-
Gibts nciht eine Möglichkeit bzw. Funktion, der man einen Asciicode übergibt und die ein Char zurückliefert? So etwas wie in aderen Sprachen chr(int) ?
-
char* ca[size];
Das ist ja auch ein Array von char-Zeigern (die zunächst ins Nirvana zeigen). Wenn du wirklich den Speicher dynamisch anlegen willst, sieht das etwa so aus:
char* ca; ... ca = malloc(size); ca[i]=32+zufallszahl;
Gibts nciht eine Möglichkeit bzw. Funktion, der man einen Asciicode übergibt und die ein Char zurückliefert? So etwas wie in aderen Sprachen chr(int) ?
Nein, wozu? In C ist char ein 8-Bit-Ganzzahltyp und kann auch ganz normal als solcher verwendet werden. Bei der Ausgabe werden die char-Werte dann entsprechend ASCII-Tabelle umgesetzt.
-
Ah ich verstehe. Danke