string转char*
时间: 2023-10-23 21:12:07 浏览: 41
将一个std::string对象转换为char*指针需要使用string对象的c_str()函数。c_str()函数返回一个指向C风格字符串(以null结尾的字符数组)的指针,该字符串是由std::string对象表示的字符串的副本。以下是一个简单的示例:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, world!";
char* char_ptr = const_cast<char*>(str.c_str());
std::cout << char_ptr << std::endl;
return 0;
}
```
输出:
```
Hello, world!
```
需要注意的是,char_ptr指向的字符串是由std::string对象内部分配的,因此应该避免在char_ptr指向的字符串上进行修改操作。如果需要修改字符串,应该使用std::string对象的成员函数。
相关问题
string 转char*
将一个 std::string 转换成 char* 需要以下步骤:
1. 使用 string 的 c_str() 函数将其转换成 const char* 类型
2. 使用 strcpy() 函数将 const char* 复制到 char* 数组中
例如:
```c++
#include <iostream>
#include <cstring>
int main() {
std::string str = "Hello, world!";
char* cstr = new char[str.length() + 1]; //需要多一个字符来存储字符串结束符 '\0'
std::strcpy(cstr, str.c_str());
std::cout << cstr << std::endl;
delete[] cstr; //记得释放内存
return 0;
}
```
需要注意的是,char* 数组需要手动分配内存,并且需要在使用完毕后释放内存,否则会导致内存泄漏。
string 转 char*
将 C++ 的 std::string 转换为 C 风格的 char*,可以使用 std::string 的成员函数 c_str(),它返回一个指向以 null 结尾的字符数组的指针,即 C 风格的字符串。
示例代码:
```c++
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, world!";
const char* c_str = str.c_str();
std::cout << "std::string: " << str << std::endl;
std::cout << "C-style string: " << c_str << std::endl;
return 0;
}
```
输出:
```
std::string: Hello, world!
C-style string: Hello, world!
```