c++ 中 转换string 为 char数组
时间: 2024-02-28 14:49:12 浏览: 137
在C++中,可以使用`strcpy`函数将`string`类型转换为`char`数组。具体实现方法如下所示:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
string str = "Hello World!";
char char_array[str.length() + 1];
strcpy(char_array, str.c_str());
cout << "The char array is: " << char_array << endl;
return 0;
}
```
在上述代码中,首先定义了一个`string`类型的变量`str`,并将其初始化为`"Hello World!"`。然后,定义了一个`char`类型的数组`char_array`,其长度为`str.length() + 1`,即字符串长度加1。接着,使用`strcpy`函数将`str.c_str()`的值复制到`char_array`中。最后,输出`char_array`的值。
相关问题
C++将string转换为char数组
可以使用string类中的c_str()函数将string类型转换为char数组。
例如:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "Hello World!";
char char_arr[str.size() + 1]; // 加1是为了给'\0'留出空间
strcpy(char_arr, str.c_str()); // 使用c_str()函数将string类型转换为char数组
cout << char_arr << endl;
return 0;
}
```
输出结果为:
```
Hello World!
```
需要注意的是,使用c_str()函数返回的指针指向的是一个临时的字符数组,其生命周期与string对象相同。因此,如果在char数组中需要长期保存string对象中的内容,需要将其复制到新的内存空间中。
C++如何实现string转char数组?
在C++中,可以使用`c_str()`函数将`std::string`转换为`const char*`类型的字符数组。
下面是一个示例:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, World!";
const char* charArray = str.c_str();
std::cout << "String: " << str << std::endl;
std::cout << "Char Array: " << charArray << std::endl;
return 0;
}
```
在上面的示例中,首先创建了一个`std::string`对象`str`,并初始化为"Hello, World!"。然后使用`c_str()`函数将`str`转换为`const char*`类型的字符数组,并将结果赋值给`charArray`。最后,通过输出语句打印出字符串和字符数组的值。
注意,`c_str()`函数返回的字符数组是一个指向原始数据的指针,它指向的数据在`std::string`对象的生命周期内有效。如果对原始字符串进行修改,将会影响到字符数组的内容。
另外,如果需要在C++中对字符串进行更灵活的操作,可以使用`std::vector<char>`或者`std::array<char>`等数据结构来代替字符数组。
阅读全文
相关推荐














