Char to Int Array



  • Hi, also ich habe folgendes Problem:

    ich habe eine char variable "buf", welche 6 zahlen speichert. diese 6 zahlen moechte ich nun gerne jeweils einzeln in ein array packen, damit ich mit ihnen arbeiten kann.

    char buf[256];

    cout<<buf[0];
    cout<<buf[1];
    cout<<buf[2];
    cout<<buf[3];
    cout<<buf[4];
    cout<<buf[5];

    Diese möchte ich also nun quasi folgendermassen in ein int umegwandelt haben damit ich sie in ein Array packen kann zb.:

    int intzahl[5];
    intzahl[0]=buf[0];
    intzahl[1]=buf[1];
    intzahl[2]=buf[2];
    intzahl[3]=buf[3];
    intzahl[4]=buf[4];
    intzahl[5]=buf[5];

    so das die moeglichkeit besteht, dass ich z b ohne probleme mit ihnen rechnen kann.

    summe= intzahl[0]+intzahl[1];

    würde schon reichen 🙂



  • craven schrieb:

    int intzahl[5];
    ...
    intzahl[5]=buf[5];

    Ich weiß zwar nicht wo das Problem liegt, aber das geht nicht. Du forderst Speicher für 5 Elemente an, belegst aber 6.



  • for (int i=0;i<6;i++ ) intzahl[i]= buff[i-'0'];
    


  • Das Problem ist, dass es so wie es da steht:

    intzahl[5]=buf[5];

    nicht funktioniert. du musst den char umwandeln in integer.

    sicher, man kann in der regel chars in int mittels:

    intzahl[5]=atoi(buf[5]);

    umwandeln. dies funktioniert hier aber nicht. man koennte hoechstens

    intzahl[5]=atoi(buf);

    schreiben, was mich aber nicht zu meinem ergebnis führt.



  • denali schrieb:

    for (int i=0;i<6;i++ ) intzahl[i]= buff[i-'0'];
    

    hat ich auch schon ausprobiert, funktioniert aber auch nicht 😞

    kommen sehr kuriose zahlen raus.



  • Sorry, ich war natürlich wieder mal viel zu schnell!
    Es muss natürlich heißen:

    for (int i=0;i<6;i++ ) intzahl[i]= buff[i]-'0';
    

    Ein char ist nichts anderes als ein int mit 1 Byte Länge. Er wird nur anders interpretiert.



  • denali schrieb:

    Sorry, ich war natürlich wieder mal viel zu schnell!
    Es muss natürlich heißen:

    for (int i=0;i<6;i++ ) intzahl[i]= buff[i]-'0';
    

    Ein char ist nichts anderes als ein int mit 1 Byte Länge. Er wird nur anders interpretiert.

    Ja das wars 🙂 Das hatte ich natürlich nicht bedacht. Vielen Dank für diese schnelle Hilfe!



  • und noch ein tipp ein array mit dem index 5 geht von 0 bis 4


Anmelden zum Antworten