将字符串转换为字节数组

时间:2011-07-13 18:51:24

标签: c++ windows visual-c++

我想将string转换为array的{​​{1}}。我怎么能这样做?

实际上我想从文件中读取并将所有数据转换为bytes array

如果已转换,我如何获得bytes的大小?

在获得字节数组后,我想获得类型为array的指针并使其指向该字节数组,以使用函数LPVOID

第二个参数需要指向字节数组。但我不知道有任何方法可以做到这一点。

2 个答案:

答案 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];