000
11.08.2008, 02:43 Uhr
Ander
|
hallo,
ich bin c++ anfaenger und komme nicht auf die loesung meines problems. mein ziel ist es, einen eingegebenen string um x zeichen zu erweitern, was einer tatsaechlichen verschluesselung aehneln soll und dann nur die relevanten zeichen aus einem string wieder auszulesen, was einer entschluesselung nahe kommt.
der compiler im bloodshed dev-c++ (glaube mingw?) gibt mir folgende fehlermeldung:
invalid conversion from `char' to `const char*' initializing argument 1 of `std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::append(const _CharT*) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]'
bei
Code: |
cryptString.append(addchar);
|
Code: |
cryptString.append(rndchar);
|
und den entsprechenden sachen bei der entschluesselung
hier der code im ganzen:
Code: |
#include <iostream> #include <string> #include <cmath> //fuer zufallszahlen #include <conio.h>
using namespace std;
/* =========================================== ENCRYPT =========================================== */ string encrypt(string originalString) { string cryptString = ""; int mloop, loop; //mainloop + subloop char rndchar; //cryptchar char addchar; //eigentlicher char srand (time(NULL)); //rnd enable for(mloop = 0; mloop < originalString.length(); mloop++) //crypt handle { addchar = originalString.at(mloop); cryptString.append(addchar); // -- hier kommt die fehlermeldung for(loop = 1; loop<=10 ; loop++) //add crypt (random chars) { rndchar = rand()%94; rndchar = rndchar + 33; cryptString.append(rndchar); // -- hier ebenfalls fehlermeldung }//add crypt end }//crypt handle end return cryptString; }
/* =========================================== DECRYPT =========================================== */ string decrypt(string originalString) { string decryptString = ""; int mloop, DChandle; //mainloop + decrypt position char addchar; //eigentlicher char for(mloop = 0; mloop < originalString.length(); mloop++) //decrypt handle { DChandle = mloop * 10; addchar = originalString.at(DChandle); decryptString.append(addchar); // -- fehlermeldung }//decrypt handle end return decryptString; }
int main() { cout << "Test" << endl; string inputString; string outputString; cin >> inputString; outputString = encrypt(inputString); cout << outputString << endl; outputString = decrypt(outputString); cout << outputString << endl; getch(); return 0; } //ende main
|
warum die verwendeten chars konstanten sind, will mir nicht einleuchten, muss man dafuer nicht "const char" schreiben?
ich bin hier relativ hilflos, wuerde mich also wirklich sehr ueber etwaige hilfe freuen Dieser Post wurde am 11.08.2008 um 02:47 Uhr von Ander editiert. |