Also ich versuche, die Ceasar Cipher mit char *
‚s zu verwenden, ich habe eine einfache Funktion aus wie folgt geschrieben:Caesar Cipher mit char *? C++
char * Encrypt(char * s, int k)
{
char * c = s;
for(int i = 0; i < strlen(s); i++)
c[i] += k;
return c;
}
, der wie sollte es aussehen scheint arbeiten, aber es funktioniert nicht. Beim Ausführen des Programms wird ein Fehler ausgegeben. Hier
ist ein Beispiel dafür, wie ich nenne diese Funktion: „warum nicht nur string
verwenden“
int main()
{
cout << Encrypt("hello", 2) << endl;
system("pause");
return 0;
}
Und bevor Sie sagen, na ja die Antwort I C ich schreibe ++ auf einem bestimmten SDK, das verursacht Compilerfehler bei der Verwendung von string
. Ok, aber ja, jede Form der Hilfe wird sehr geschätzt werden, danke!
Wenn Sie 'std :: string' nicht verwenden (oder nicht verwenden können), sollten Sie die korrekten C-Bibliotheksfunktionen verwenden, um den Inhalt von' Source' in ein Array von geeigneter Größe * zu kopieren. Ansonsten modifizierst du 'Source'. – crashmstr
Denken Sie daran, dass char unsigned kurz ist, Ihre Verschlüsselung funktioniert möglicherweise nicht, wenn Ihr Schlüssel den Wert außerhalb des Char-Bereichs überschreitet. –
Lassen Sie mich raten, rufen Sie diese Funktion mit einem String-Literal? Bitte versuchen Sie, ein [minimales, vollständiges und verifizierbares Beispiel] (http://stackoverflow.com/help/mcve) zu erstellen und zeigen Sie uns. besonders, wie Sie diese Funktion nennen. –