Lowlevel
OffZone => Offtopic => Thema gestartet von: Another Stupid Coder am 14. August 2004, 23:00
-
Hallo,
Ich wollte mal fragen ob einer von euch ne Ahnung hat wie ich zwei (oder mehr aber das sollte ja das gleiche sein) zu einer Zahl zussamen tun kann (nein, ich meine nicht addieren).
Also ich meine das aus 1 und 2 12 wird. Wenn man 4 und 5 nimmt 45 und so weiter.
Hat jemand nen Tipp? (Möglichst in C/C++ von mir aus auch mit Std-Libs wäre aber besser ohne.)
-
hi,
ich hoffe ich habe deine frage richtig verstanden
char* zahl = "123";
int ergebnis = 0;
char* p2z = &zahl[0];
while (*p2z)
{
int add = *p2z - '0'; /// Berechne den WErt der Ziffer
ergebnis*= 10; // Eine weitere Stelle hintendran
++p2z;
ergebnis += add;
}
ich hoffe, das funktioniert, habs grade gehackt
mfg gurru
-
Ich denke schon aber ich teste es gerade, es geht darum einen String in einen Int umzuwandeln. (Nachdem bereits getestet wurde das es sich um eine Zahl handelt in dem String)
-
Okay, es klappt herzlichen Dank, du hast mir wirklich sehr geholfen!
-
Hiho
Dafür könntest du aber auch den befehl atoi() nehmen.
genauere Infos gibt's hier http://www.mkssoftware.com/docs/man3/atoi.3.asp
-
Jo, aber da sehe doch nicht wie er funktioniert :)
-
Also ganz allgemein kann man sagen Ziffer addieren, noch ne Ziffer? dann mal 10 nehmen, die nächste dazuaddieren und so weiter;) Wenn man sein eigen OS progglt hat man aber dummerweise kein atoi();^^ aber der Algorythmus da is eh so grausam einfach das kann man in 2 Minuten selbst machen^^
-
Jo, ist mir mitlerweile auch klar geworden aber irgendwie hatte ich so ein extremes Blackout (war auch schon ziemlich müde) das mir das mit dem mal 10 einfach nicht eingefallen ist...O_o
-
Naja die itoa funzt genau andersrum, nur so nebenbei erwähnt, immer durch zehn und der rest jeweils ist eine ziffer das solange bis die zahl 0 ist dann kann man den string so sortiern das die ziffern in der richtigen reihenfolge und so sind, dann noch 48 fürs Ascii dazu und fertig^^