Char to int
-
aber wenn ich dir atoí funktion nehme, dann bekomme ich den wert für den asci code des zeichens zurück. nicht aber den eigentlichen wert den ich möchte
-
ohne beispielcode sind wir machtlos.
-
int pos1 = atoi(&CharCounter[k][2]);
wenn ich das so mache, dann bekomm ich immer 0 herraus.
-
Was ist denn "CharCounter"? Und was steht im Element "CharCounter[k]"?
(atoi liefert auch 0 zurück, wenn es die übergebene Zeichenkette nicht als Zahl deuten kann)
-
beim debuggen liefert mir charcounter [k][2] den wert 40 zurück. das wäre auch genau der wert den ich haben möchte. leider geht mir der wert dann beim umwandeln in int verloren und ich bekomme 0.
übrigens thx für eure mühen schon mal
-
Ist charcounter[k][2] gleich 40 oder &charcounter[k][2] gleich 40 ?
[edit] ...oder ist k gleich 40... [/edit]
-
Ist charcounter[k][2] gleich 40
und k = 0
-
0815noob schrieb:
beim debuggen liefert mir charcounter [k][2] den wert 40 zurück. das wäre auch genau der wert den ich haben möchte. leider geht mir der wert dann beim umwandeln in int verloren und ich bekomme 0.
Nochmal langsam: Was genau steht in deinem Array "CharCounter" und was willst du dort draus extrahieren?
atoi und ähnliche Funktionen erwarten eine nullterminierte Zeichenfolge und deuten die ASCII-Zeichen '0' bis '9' als Ziffern, die sie zu einer Zahl zusammensetzen. 40 entspricht dem ASCII-Zeichen '(' und lässt sich nicht als Zahl interpretieren.
-
Hallo nochmal,
Das Programm an dem ich gerade arbeite, realisiert eine HuffmanCodierung. In CharCounter wird die Häufigkeitsverteilung der einzelnen Buchstaben gespeichert. Charcounter an der stelle [k] enthält also die Anzahl des dahineingeschriebenen Buchstaben. Eine Textdatei wird also nach Buchstaben gesucht, und dann in das Array geschrieben.
-
Achso, die Variable ist zwar vom Typ char (bzw. char[]), enthält aber in Wirklichkeit "normale" Zahlen - sag das doch gleich
In dem Fall reicht womöglich ein normaler Cast schon aus:int pos1=(int)CharCounter[k][2];