c++ 将char数组的内容转换成string
时间: 2023-08-18 16:08:53 浏览: 103
可以使用string的构造函数将char数组转换成string。例如:
```c++
char arr[] = "hello";
string str(arr);
```
这样就将char数组"hello"转换成了string类型的str。注意,如果char数组中含有'\0'字符,那么转换后的string类型的字符串只会包含'\0'之前的字符,'\0'之后的字符将被丢弃。
相关问题
c++将char数组存入string
在C++中,将`char`数组存入`std::string`通常有两种方式:
1. 直接赋值法:
```cpp
char arr[] = "Hello, World!";
std::string str(arr); // C++11及以后版本,字符串字面量会隐式转换为const char*,然后复制到std::string
```
2. 使用构造函数:
```cpp
char arr[] = "Hello, World!";
std::string str(arr, sizeof(arr)); // 明确指定数组长度,包括终止符'\0'
```
如果数组没有明确的终止符,可以先计算数组的实际长度,例如:
```cpp
size_t len = strlen(arr);
std::string str(arr, len);
```
**相关问题:**
1. C++如何处理含有空字符('\0')的`char`数组?
2. 使用`std::string(str.begin(), str.end())`代替`str(arr)`的效果是什么?
3. 如果`char`数组非常大,直接复制会不会影响性能?
c++ 将unsigned char数组转成string
可以使用C++中的string构造函数来将unsigned char数组转换为string。示例代码如下:
```c++
unsigned char arr[] = { 65, 66, 67, 68 }; // 假设这是一个unsigned char数组
std::string str(reinterpret_cast<const char*>(arr), sizeof(arr));
```
这里使用了string的构造函数,第一个参数是一个指向const char的指针,因此需要使用reinterpret_cast将unsigned char数组转换为const char数组。第二个参数是数组的大小,这里使用了sizeof运算符来获取数组的大小。最终得到的str即为转换后的string。
阅读全文