,所以我試圖用凱撒密碼與char *
的,我寫了一個簡單的函數出來是這樣的:使用char *的凱撒密碼? C++
char * Encrypt(char * s, int k)
{
char * c = s;
for(int i = 0; i < strlen(s); i++)
c[i] += k;
return c;
}
,這似乎看起來像它應該工作,但事實並非如此。運行程序時會引發錯誤。
這裏是我如何調用該函數的一個例子:「爲什麼不直接使用string
」
int main()
{
cout << Encrypt("hello", 2) << endl;
system("pause");
return 0;
}
和你說之前,那麼答案是我在某SDK使編寫C++使用string
時出現編譯錯誤。好的,但是,任何形式的幫助將不勝感激,謝謝!
如果你不是(或不能)使用'std :: string',那麼你應該使用正確的C庫函數*將Source的內容複製到適當大小的數組中。否則,你正在修改'Source'。 – crashmstr
請記住,char無符號短小,如果您的密鑰超出char範圍以外的值,則加密可能無效。 –
讓我猜,你用字符串文字調用這個函數?請嘗試創建[最小化,完整和可驗證示例](http://stackoverflow.com/help/mcve)並向我們顯示。特別是你如何調用這個函數。 –