C++ 中char数组转成字符串
时间: 2023-07-08 22:53:17 浏览: 79
可以使用C++标准库中的string类来实现将char数组转换成字符串。具体代码如下:
```c++
char charArray[] = {'H', 'e', 'l', 'l', 'o', '\0'}; // 以'\0'结尾的字符数组
std::string str(charArray); // 将char数组转换成字符串
```
注意,转换的字符数组需要以'\0'结尾,否则转换后的字符串可能出现意想不到的错误。
相关问题
c++将char数组转换成字符串
使用C语言中的字符串库函数strcpy()可以将char数组转换为字符串。
例如,有一个char数组arr,需要将它转换为字符串str:
```c
char arr[] = {'H', 'e', 'l', 'l', 'o', '\0'};
char str[10];
strcpy(str, arr);
```
其中,第一行定义了一个包含字符'H'、'e'、'l'、'l'、'o'和空字符'\0'的char数组arr。
第二行定义了一个长度为10的char数组str,用于存储将arr转换后的字符串。
第三行使用strcpy()函数将arr的值复制到str中,此时str中存储的就是字符串"Hello"。
需要注意的是,char数组必须以空字符'\0'结尾才能被当做字符串处理,否则strcpy()函数会继续复制数组中的值直到遇到空字符为止。
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 风格字符串,并在控制台上输出它。