如何将C++中的字符串转换为字符数组?
时间: 2024-10-24 20:05:33 浏览: 54
C#将字符串数组传递给C++ DLL.rar
在C++中,将C-style字符串(即以`\0`结尾的字符数组)转换为标准库中的`std::string`类型是常见的需求,反之则相对简单,因为`std::string`有一个内置的成员函数可以直接赋值给字符数组。但是如果你想直接从`std::string`获取字符数组,你可以这样做:
1. 使用`c_str()`函数,这个函数返回的是`const char*`,实际上是一个指向常量字符数组的指针,例如:
```cpp
std::string myString = "Hello";
charCharArray[myString.size()] = myString.c_str(); // 注意这里myString.size()会包括末尾的'\0'
charCharArray[myString.size()] = '\0';
```
2. 或者使用`data()`函数,得到的是`const char*`加上`begin()`和`end()`之间的内容,同样需要添加结束符:
```cpp
charCharArray = myString.data();
charCharArray[myString.length()] = '\0'; // 注意这里length()不会包含末尾的'\0'
```
但需要注意的是,这两个方法都不会复制字符串内容到新的数组里,只是暴露了原`std::string`内部已存在的字符数组。如果要安全地复制字符串,应该先将其复制到一个新的`char`数组中。
阅读全文