c++ 将一个unsigned char的数组转换为字符串
时间: 2024-02-04 09:02:56 浏览: 229
可以使用 C++ 标准库中的 string 类的构造函数,例如:
```c++
#include <iostream>
#include <string>
int main()
{
unsigned char arr[] = { 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100 };
std::string str(reinterpret_cast<char*>(arr), sizeof(arr));
std::cout << str << std::endl;
return 0;
}
```
输出结果为:
```
Hello World
```
这种方法会将数组中的每个 unsigned char 转换为对应的 ASCII 码字符,然后拼接成一个字符串。需要注意的是,这里使用了 reinterpret_cast 将 unsigned char 类型的指针转换为 char 类型的指针,以便使用 string 类的构造函数。
相关问题
c++ 将unsigned char数组输出为字符串
可以使用C++标准库中的`string`类,将`unsigned char`数组转换为字符串输出。具体实现方法如下:
```c++
unsigned char arr[] = { 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33 };
std::string str(reinterpret_cast<const char*>(arr), sizeof(arr));
std::cout << str << std::endl;
```
这里使用了`reinterpret_cast`强制类型转换将`unsigned char`数组转换为`char`类型,然后通过`string`类构造函数将`char`数组转换为字符串。最后使用`cout`输出字符串。
C++ unsigned char*数组转ascii字符串
可以使用以下代码将一个 `unsigned char` 类型的数组转换为 ASCII 字符串:
```cpp
unsigned char arr[] = { 72, 101, 108, 108, 111, 33 }; // Hello!
int len = sizeof(arr) / sizeof(unsigned char);
char str[len+1];
for (int i = 0; i < len; i++) {
str[i] = static_cast<char>(arr[i]);
}
str[len] = '\0';
std::cout << str << std::endl; // Output: Hello!
```
在上面的代码中,我们首先定义了一个 `unsigned char` 类型的数组 `arr`,其中包含 ASCII 字符串 "Hello!" 的每个字符的 ASCII 编码。然后,我们计算数组的长度并使用 `char` 类型的数组 `str` 来存储 ASCII 字符串。接下来,我们使用循环遍历 `arr` 数组中的每个元素,并将其转换为 `char` 类型并存储到 `str` 数组中。最后,我们在 `str` 数组的末尾添加一个空字符 '\0',以确保它是一个有效的 C 风格字符串,并在控制台上输出它。
阅读全文