Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用char*的凯撒密码?c++;_C++_Encryption_Caesar Cipher_Char Pointer - Fatal编程技术网

C++ 使用char*的凯撒密码?c++;

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*访问字符串

因此,我尝试将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
这看起来应该行得通,但实际上不行。它在运行程序时抛出一个错误

下面是我如何调用此函数的示例:

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时会导致编译错误。很可能,修改是问题所在。一个好的编译器/执行系统将是只读存储器中的常数字符串。