char array in int zahl umwandeln
-
hallo könnt ihr mir sagen wie ich den buffer in eine int zahl mach
char buf[256]; //soll zu int werden int zahl;
-
Probier es mal so:
int zahl = sizeof buf;
Code-Hacker
-
ne geht leider nicht
trotzdem danke
-
Also bei mir liefert er 256 zurück.
Ansonsten setz das buf mal in Klammern, so:sizeof(buf);
Code-Hacker
-
ääähhmmm ich mein den inhalt vom buffer in die zahl einfügen
-
Was genau willst du dadrin haben? Die einzelnen Zeichenwerte aus dem String oder was?
Code-Hacker
-
also ich will jetzt aus dem array
int zahl; char array[256]; int i; for(i=0;i<256;i++) zahl=atoi(array[i])+zahl
aber des soll halt die ganze zahl aus dem array sein z.B:
array[0]=1; array[1]=5; int zahl=15;
-
Du willst also die Zahl in dem Array, als integer-zahl haben, wenn ich das richtig sehe, dann mach einfach folgendes:
char array[256]="12345"; int zahl=atoi(array); std::cout << zahl;
So bekommst du jetzt 12345 als integer Zahl.
Oder wie in deinem Beispiel:char array[256]; array[0]='1'; array[1]='5'; int zahl=atoi(array); std::cout << zahl;
Jetzt kommt 15 heraus. Außerdem solltest du dem Array das Zeichen 1 und nicht die 1 zuweisen, also in einfache Hochkommatas gestellt
Nebenbei funktioniert deine obige Schleife nicht, da meckert er:
"blabla\CPPTests.cpp(20): error C2664: 'atoi': Konvertierung des Parameters 1 von 'char' in 'const char *' nicht möglich"Code-Hacker
-
und was fürn befehl is des in c weil mein compiler spinnt bei c++
-
Das ist eine C-String-Funktion. Du brauchst dafür die stdlib.h (in C++ cstdlib).
Code-Hacker
-
ich hab was besser es gefunden trotzdem danke
sscanf
-
Code-Hacker schrieb:
char array[256]; array[0]='1'; array[1]='5'; int zahl=atoi(array); std::cout << zahl;
wer findet den fehler?
-
'\0' fehlt
grüße Con@n
-
um ein char feld in einen int-wert umzuwandeln benutze ich, wie hier schon erwähnt,
char array[256]="12345"; int zahl=atoi(array); std::cout << zahl;
funktioniert an sich auch einwandfrei...
ich habe allerdings ein problem, da ich teilweise charfelder habe die mit einer 0 beginnen (durch generierung eines timestamp) und wenn ich das in int umwandle wird mir die 0 einfach "wegrationalisiert"...
diese ist allerdings sehr wichtig!
weiß jemand wie ich dieses problem lösen und meine 0 behalten kann??
-
die zahlen weiterhin als char* oder string speichern!
-
Con@n schrieb:
'\0' fehlt
OOOOOPS...
Ich habe letztens im Buch einfach nur 0 gelesen statt \0, wo ist zw. den beiden der Unterschied:char array[2]; array[0]='A'; array[1]=0;
und
char array[2]; array[0]='A'; array[1]='\0';
Beide haben die abschließende Null und funktionieren auch.
Code-Hacker