C++ 使用char*的凯撒密码?c++;
因此,我尝试将Ceasar密码与C++ 使用char*的凯撒密码?c++;,c++,encryption,caesar-cipher,char-pointer,C++,Encryption,Caesar Cipher,Char Pointer,因此,我尝试将Ceasar密码与char*一起使用,我编写了一个简单的函数,如下所示: char * Encrypt(char * s, int k) { char * c = s; for(int i = 0; i < strlen(s); i++) c[i] += k; return c; } char*加密(char*s,intk) { char*c=s; 对于(int i=0;i实际上是常量字符数组。< /P> 使用char*访问字符串
char*
一起使用,我编写了一个简单的函数,如下所示:
char * Encrypt(char * s, int k)
{
char * c = s;
for(int i = 0; i < strlen(s); i++)
c[i] += k;
return c;
}
char*加密(char*s,intk)
{
char*c=s;
对于(int i=0;i
这看起来应该行得通,但实际上不行。它在运行程序时抛出一个错误
下面是我如何调用此函数的示例:
int main()
{
cout << Encrypt("hello", 2) << endl;
system("pause");
return 0;
}
intmain()
{
cout字符串文本,如“Hello”
是只读的。如果您试图修改这样的字符串,您将有未定义的行为
< C++字符串文字>实际上是常量字符数组。< /P>
使用char*
访问字符串文字应该会让编译器向您发出警告。否则,您需要提高警告级别或启用更多警告
如果你真的在C++编程,我建议你学习和阅读.< /p>让我猜一下,你用字符串文字来调用这个函数吗?请尝试创建一个并显示我们。特别是你如何调用这个函数。@代码> char < /> >是<代码> char < />代码>代码>未签名短是完全不同的类型。。char
和unsigned short之间唯一的共同点是两者都是整数类型。@DanielProtopopov:“char是unsigned short”是什么意思?这是两种不同的类型,几乎可以肯定具有不同的范围。SDK对std::string
抱怨什么?以及“抛出错误”的确切原因是什么意思是?请更新你的问题,告诉我们实际的错误信息。答案是我在某个SDK上写C++,使用String时会导致编译错误。很可能,修改是问题所在。一个好的编译器/执行系统将是只读存储器中的常数字符串。