Autor Thema: Ziffern zu Zahl zusammen setzen?  (Gelesen 2639 mal)

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« 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.)

gurru

  • Beiträge: 42
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 14. August 2004, 23:08 »
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

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 15. August 2004, 23:27 »
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)

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 15. August 2004, 23:30 »
Okay, es klappt herzlichen Dank, du hast mir wirklich sehr geholfen!

JensFZ

  • Beiträge: 96
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 16. August 2004, 07:12 »
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
 

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 16. August 2004, 09:33 »
Jo, aber da sehe doch nicht wie er funktioniert :)

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #6 am: 16. August 2004, 18:14 »
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^^
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 16. August 2004, 18:38 »
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

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #8 am: 16. August 2004, 19:30 »
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^^
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

 

Einloggen