c++ 无法将常量字符转换为字符

k2arahey  于 2023-02-06  发布在  其他
关注(0)|答案(1)|浏览(170)
char messaggiou[100];    
char *name2;
string encoded;

name2 = (char*)malloc(encoded.length() + 1); 
strcpy(name2, messaggiou);                                     
strcpy(encoded.c_str(), name2);           
const char* hex_str = name2;

在C++中使用vs2015时,我得到了一个错误代码(简化)。

error C2664: `'char *strcpy(char *,const char *)': cannot convert argument 1 from 'const char *' to 'char *'

另外,messaggiou中有一个十六进制加密字符串

vojdkbi0

vojdkbi01#

如果您使用C++,我会代替您这样做:

std::string messaggiou;    
std::string name2;
std::string encoded;

name2 = messaggiou;                                     
encoded = name2;          
const char* hex_str = name2.c_str();

感谢C++,如果事情可以变得更简单,为什么要复杂化呢:-)
您还可以使用const_cast<char*>(const object)强制任何const,但是如果您不需要...

相关问题