unsigned long in std::string und zurück
-
Hier erstmal meine bisherige Lösung:
//unsigned long in std::string konvertieren while(*CT!=0) //*CT ist eine 32 Bit unsigned long { cipher+=(char)(*(CT)%1000); //Cipher ist ein std::string *CT=*(CT)/1000; } //std::string in unsigned long konvertieren for(int j=0;j<cipher.length();j++) { *( CT ) = *(CT)*1000; *(CT)+=cipher.at(j); }Die beiden Schleifen stehen in unterschiedlichen Funktionen. Leider ist am Ende das End unsigned long != dem Ausgangs unsigned long. Nichtmal wenn ich den Ciphertext vorher umdrehe kommt auch nur annähernd die selbe Zahl raus.
Gibt es ne elegantere Methode des Umwandels? Oder führt auch diese Zum Erfolg? Wenn ja wie?
-
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39488.html
Was soll die Tausend da? Wenn ich mich recht erinnere rechnet man da draußen doch dezimal (Basis 10)

Außerdem liegen die Zahlzeichen im ASCII-Encoding ganz wo anders.
-
Oh danke hab ich in der FAQ ganz überlesen den Beitrag. Das hat mir sehr geholfen.
Mein Besipiel war ein Missglückter Versuch denke ich. ASCII - Encoding hat ja bis zu drei Stellen daher die 1000. So richtig durchdacht war das aber noch nicht. An Zahlen hatte ich auch noch nicht gedacht.
Also danke für den Link werde es jetzt auf nem besseren Weg machen.
-
Hmm klappt ja mit Zahlen alles ganz wunderbar.
Gibt es denn auch ne entsprechende Methode um ASCII Codierte - Strings hin und zurück zu verwandeln?
Also std::string (Text) in unsigned long und zurück? Natürlich immer nur Abschnittsweise, aber das würde mir ja schon reichen.
-
Was meinst du mit "ASCII-codierte Strings"?
-
Na sowas wie "Test". Mit den in der FAQ beschriebenen Methoden kann man lediglich Zahlenstrings also z.B. "1234" umwandeln. Der Begriff ASCII Codiert ist sicherlich unglücklich gewählt.

-
Und was für eine Zahl willst du aus der Zeichenfolge "Test" denn herauslesen?
-
Eine die man auch wieder zurück wandeln kann. Im Idealfall natürlich die ASCII - Codes hintereinander oder so. In dem Fall also: 84101115116. Standardfunktionen die das beherschen würde ich natürlich bevorzugen. Ne Händische Methode zum Umwandeln hab ich gefunden, ist die selbe wie die eingangs gepostete. Bloss dass ich bei der Rückwandlung die Zeichen dann nochmal umdrehe.