Mehrere Zahlen aus einem String in ein Array
-
Hi Leute,
ich arbeite momentan an einer einfachen Verschlüsselungsmethode für .txt Dateien.
Das Verschlüsseln klappt so wie ich es will, das entschlüsseln aber nicht.Also beim verschlüssen nimmt es den Ascii entsprechenden Wert eines Buchstaben und addiert/subtrahiert Werte, die sich aus dem Passwort ergeben. Dann sieht der Text "hallo" z.B. so aus:
"194 102 198 113 201"Nach dem Einlesen habe ich diesen Text jetzt im string, ich will aber das es hinterher so aussieht:
int zeichen[zeichenanzahl]; zeichen[0] = 194; zeichen[1] = 102; zeichen[2] = 198; zeichen[3] = 113; zeichen[4] = 201;Vielleicht könnt ihr mir helfen wäre nett

mfG TheCrip
ps. Text überarbeitet, weil es irgendwie schlecht erklärt war
-
ungetestet
#include <sstream> #include <string> using namespace std; int main() { string text; string password; istringstream quelle(password); //Stream erstelllen while(!quelle.eof()) { int i; quelle >> i; text += (unsigned char)i; } }
-
Vielen dank, aber ich glaube du hast meinen Post nicht gelesen oder mein Problem nicht verstanden.
Ich will aus "194 102 198 113 201" ( im string format ) das hier machen:
int zeichen[zeichenmenge];
zeichen[0] = 194;
zeichen[1] = 102;
zeichen[2] = 198;
zeichen[3] = 113;
zeichen[4] = 201;
...
mfG Nibel
-
Ja, so ganz genau hab ich ihn nicht gelesen, außerdem war in meinem Programm ein Fehler drin, aber so ähnlich sollte es trotzdem gehen, (ich machs lieber mit std::vector)
#include <sstream> #include <string> #include <vector> using namespace std; int main() { vector<unsigned char> chars; string password; //da kommt dein Passwort rein istringstream quelle(password); //Stream erstelllen while(!quelle.eof()) { int i; quelle >> i; chars.push_back((unsigned char)i); } }
-
Vergiss es... das ist auch nicht was ich suche...
Ich habe einfach nur einen string mit mehreren Zahlen mit Leerzeichen getrennt:
std::tring text = "194 102 198 113 201";Diese Zahlen will ich jetzt einzeln in ein Array kriegen!
Ich hab den Startpost jetzt auch nochmal überarbeitet
-
Hast du das Beispiel schon ausprobiert?
Ich dachte eigentlich, das würde genau das machen, habe es aber nicht getestet.
Muss es ein Array sein oder kannst du auch einen std::vector nehmen?Normalerweise lesen solche C++-STL-streams immer bis zum Leerzeichen, damit solltest du deine Zahlen also bekommen.
-
So, zum selber ausprobieren:
#include <sstream> #include <string> #include <vector> #include <iostream> using namespace std; int main() { vector<unsigned char> chars; string password = "100 200 128 199 2 55"; //da kommt dein Passwort rein istringstream quelle(password); //Stream erstelllen while (!quelle.eof()) { int i; quelle >> i; chars.push_back((unsigned char)i); } for(unsigned i = 0; i < chars.size(); ++i) cout << (int)chars[i] << endl; }
-
Achso du meinst mit Passwort den Text...
Sry das hab ich nicht verstanden, ich dachte du denkst das das Passwort so verschlüsselt sein muss...
Naja es klappt, vielen dank.
mfG Nibel
-
Ja, der Kommentar ist vielleicht missverständlich geraten...