Archiv verlassen und diese Seite im Standarddesign anzeigen : C: chars in ints umwandeln?
Hallo,
Ich ahbe einen String test[10] in c. Die ersten drei zeichen des strings sind immer dez. zahlen. diese ersten drei zeichen möchte ich nun in das int-array zahl[3] kopieren. Wie geht das?
Ich habe schon folgendes versucht, da bekomm ich aber nur schwachsinn in den int-array reingeschrieben:
for (i=0;i<=2;i++)
{
zahl[i] = test[i];
}
Exxtreme
2004-02-13, 22:56:56
Ich weiss gar nicht, was du überhaupt machen willst...
Meinst du vielleicht, daß wenn du den String "123" in das int-Aray kopierst, daß du dann dann tatsächlich
zahl[1]=1
zahl[2]=2
zahl[3]=3
rausbekommst?
Wenn ja, dann sage ich dir, daß das so nicht funktioniert.
Ja, das ist genau das, was ich machen will :D
Wenn du das machen willst was Exxtreme beschrieben hat, musst den ASCII-Code für das Zeichen '0' vom ASCII-Code für die anderen Zahlzeichen abziehen. Also:
for(i = 0; i <= 2; ++i) {
zahl[i] = test[i] - '0';
}
char ist ein *numerischer* Typ, d.h. er speichert Zahlen. Wenn man diese Zahlen anhand des ASCII-Codes interpretiert, bekommt man Zeichen. Die Zahl für das Zeichen '0' ist 48, für die anderen Ziffern entsprechend höher.
Exxtreme
2004-02-13, 23:09:18
Der Grund ist ganz einfach:
das Zeichen '1' ist nicht binär 1 sondern 49. :) Wenn du also den String "123" reinkopierst, wirst du:
zahl[0]=49
zahl[1]=50
zahl[2]=51
rausbekommen. :D
Thx @all, ihr habt mir sehr weitergeholfen!
Exxtreme
2004-02-13, 23:25:41
Hier ist die ASCII-Tabelle:
http://n.ethz.ch/student/stammt/doc/Allgemeines/Ascii.html
Da sieht man welche Zeichen welchen Binärwert haben.
Legolas
2004-02-14, 10:56:38
Wenn du die Zeichenkette in einen int umwandeln willst, der den Wert 123 hat, dann geht das mit atoi. Benutzung wird in diesem Link erklärt:
http://www.chakotay.de/c-kurs/html/ansi_1.htm
(etwas runterscrollen)
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.