,所以我试图用凯撒密码与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)并向我们显示。特别是你如何调用这个函数。 –