繁体   English   中英

将字符串转换为字节数组

[英]converting string to array of bytes

我想将string转换为bytes array 我怎样才能做到这一点?

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

如果转换后如何获得该array的大小?

获得字节数组后,我想获取LPVOID类型的指针并使其指向该字节数组,以使用 function BOOL WritePrinter( __in HANDLE hPrinter, __in LPVOID pBuf, __in DWORD cbBuf, __out LPDWORD pcWritten );

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

您可以使用将string转换为char*

char* bytes = str.c_str();

长度可以通过

int len = str.length();

指针可以简单地转换为LPVOID

LPVOID ptr = (LPVOID) bytes;

您可以通过调用std::string::data()成员 function 来访问std::string中的数据,这将返回一个const char* ,或者您可以只使用std::string::operator[]来操作std::string就好像它是一个 char 数组一样。

如果你想把它作为一个向量,你可以创建一个:

std::vector<char> myVector(myString.beging(), myString.end());
char *myCharPtr = &myVector.front();

编辑:这可能是最快/更简单的方法......

std::string myStr = "testing";
char *myCharPtr = &myStr[0];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM