我想将string
转换为array
的{{1}}。我怎么能这样做?
实际上我想从文件中读取并将所有数据转换为bytes
array
。
如果已转换,我如何获得bytes
的大小?
在获得字节数组后,我想获得类型为array
的指针并使其指向该字节数组,以使用函数LPVOID
第二个参数需要指向字节数组。但我不知道有任何方法可以做到这一点。
答案 0 :(得分:4)
您可以使用
将string
转换为char*
char* bytes = str.c_str();
长度可以通过
获得int len = str.length();
指针可以简单地转换为LPVOID
LPVOID ptr = (LPVOID) bytes;
答案 1 :(得分:2)
您可以通过调用std::string::data()
成员函数来访问std::string
中的数据,该函数将返回const char*
,您也可以使用std::string::operator[]
来操纵std::string
{1}}好像它是一个char数组。
如果您想将它作为矢量,可以使用以下命令创建一个:
std::vector<char> myVector(myString.beging(), myString.end());
char *myCharPtr = &myVector.front();
编辑:这可能是最快/更简单的方法......
std::string myStr = "testing";
char *myCharPtr = &myStr[0];