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


Log in to reply