int aus char array als int speichern

little-smile

Grünschnabel
Hallo Ihr Lieben,

Ich habe ein char array in dem Zahlen stehen. Pro Position im Array eine Zahl. Nun wollte ich die Zahlen "extrahieren".

Code:
char* zahlen = new char [10] 
zahlen = "123456789";

cout << zahlen[i] << endl; // liefert den Wert

int zahl =  static_cast<int>(zahlen[i]); //liefert irgend eine Zahl, aber nicht die an Position

Wo liegt mein Fehler, kann mir jemand helfen?

little-smile
 
Zuletzt bearbeitet:
Hi.
Hallo Ihr Lieben,

Ich habe ein char array in dem Zahlen stehen. Pro Position im Array eine Zahl. Nun wollte ich die Zahlen "extrahieren".

Code:
char* zahlen = new char [10] 
zahlen = "123456789";
Du hast hier ein Speicherleck. Außerdem sind Stringliterale konstant und eigentlich handelt es sich ja um Ziffern, oder?
C++:
const char* ziffern =  "123456789";
Code:
int zahl =  static_cast<int>(zahlen[i]); //liefert irgend eine Zahl, aber nicht die an Position
Der Code liefert nicht irgendeine Zahl, sondern den ASCII Code des Zeichens welches du dort angegeben hast. Wenn du vorher '0' subtrahierst, kommt auch das raus was du willst:
C++:
int zahl =  static_cast<int>(zahlen[i] - '0');
\edit: Wobei der Cast eigentlich überflüssig ist.

Gruß
 
Zuletzt bearbeitet:
Zurück