C++ char* 如何转成byte
时间: 2024-09-06 16:03:27 浏览: 63
在C++中,`char*` 类型的数据通常是指向字符数组的指针,而每个 `char` 类型通常是8位的,代表了一个字节。因此,你可以直接将 `char*` 视为指向字节数据的指针。
如果你想将 `char*` 指向的数据转换为 `byte` 类型的数组(假设 `byte` 是 `unsigned char` 类型),你可以使用简单的指针运算和类型转换。以下是一个简单的示例代码:
```cpp
#include <iostream>
#include <vector>
int main() {
// 假设有一个char*指向字符数组
const char* charArray = "Hello, World!";
int length = strlen(charArray) + 1; // +1 为了包含结尾的 '\0'
// 创建一个足够大的byte数组来存放转换后的数据
std::vector<unsigned char> byteArray(length);
// 将char*指向的数据复制到byte数组中
for (int i = 0; i < length; ++i) {
byteArray[i] = static_cast<unsigned char>(charArray[i]);
}
// 打印转换后的byte数组
for (unsigned char byte : byteArray) {
std::cout << static_cast<int>(byte) << " ";
}
std::cout << std::endl;
return 0;
}
```
在这个代码中,我们将 `char*` 指向的每个字符转换为 `unsigned char` 类型,并存储在 `byteArray` 向量中。然后,我们打印出这个数组中的每个字节的整数值,以验证转换是否成功。
注意:通常情况下,`char` 类型是有符号的(signed char),但是在这个上下文中,我们使用 `unsigned char` 来表示字节,因为它可以更清晰地表示无符号的字节数据。
阅读全文