int-werte im char-array



  • Hallo, ich möchte wie im folgenden code werte in ein char-array abspeichern.

    #include <iostream.h>
    
    void main ()
    {
    int zahl = 8;
    int basis = 2;
    char ergebnis[10]; //als int deklariert funzt es
    
    for(int i=0; zahl>0; i++)
    	{
    	ergebnis[i]=zahl%basis;
    	zahl=zahl/basis;
    	}
    }
    

    deklariere ich das Array "ergebnis" vom Typ int, dann geht alles super und die jeweiligen Werte stehen im Array.
    Die Aufgabenstellung sagt jedoch, dass es vom typ "char" sein soll.
    Wenn ich es so mache, dann gibt es zwar keinen Error, jedoch stehen keine Werte im Array. Es ist leer.
    Wie lege ich int werte in ein Char-Array?



  • Woher weisst du, dass das array leer ist? Dein Programm hat keine Ausgabe. Ausserdem ist es inkorrekt. Als erstes schreib

    #include <iostream>
    
    int main()
    {
      // Rest
    }
    


  • ja, das ist nur nen test für eine methode die ich benötige,
    ich hab mir eine ausgabe dazu gemacht und die war an den beschriebenen stellen "leer"



  • Sonik007 schrieb:

    ja, das ist nur nen test für eine methode die ich benötige,
    ich hab mir eine ausgabe dazu gemacht und die war an den beschriebenen stellen "leer"

    versuch mal bei der ausgabe

    std::cout << (int) ergebnis[i] std::endl;

    Und wenn das der Fehler ist, wie ich ihn vermute, denke über Zeichenkodierungen nach.



  • Aja,
    mit (int) ergebnis[i]
    funktioniert es super

    vielen Dank

    Was meinst Du mit Zeichenkodierungen ?



  • Sonik007 schrieb:

    Aja,
    mit (int) ergebnis[i]
    funktioniert es super

    vielen Dank

    Was meinst Du mit Zeichenkodierungen ?

    Zum Beispiel, dass die chars von 0 bis 31 nicht darstellbar sind.



  • Ahhhhhhhhh, jetzt versteh ich.

    vielen, vielen Dank nochmal.



  • Logisch, dass es mit int ergebnis[10] funktioniert, weil die beiden Zahlen ja auch int sind. Meiner Meinung nach ist (int) ergebnis... keine Lösung, weil das (int) ein Typecast ist und zwangsweise in int konvertiert. Eine einfache Lösung ist zB. ergebnis[i] = itoa(zahl%basis), weil itoa einen integer to ascii wandelt und ergebnis ein char-Feld sein soll! char ist halt kein integer!
    Vielleicht hilfts? 🙂 🙂


Anmelden zum Antworten