C++将string对象转化为C char*
时间: 2023-12-25 11:58:11 浏览: 80
要将一个string对象转换为C char*,可以使用string对象提供的c_str()函数。该函数返回一个指向以null结尾的字符数组的指针,可以直接用作C char*。
例如:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "Hello, world!";
// 将string转换为C char*
const char* cstr = str.c_str();
// 输出C char*
cout << cstr << endl;
return 0;
}
```
输出:
```
Hello, world!
```
相关问题
c++将string转换为char*
以下是两种将C++中的string转换为char*的方法:
1. 使用string的copy函数:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, world!";
char *ptr = new char[str.size() + 1]; // 加上字符串结束标志 '\0'
str.copy(ptr, str.size() + 1);
std::cout << ptr << std::endl;
delete[] ptr;
return 0;
}
```
2. 使用string的c_str函数:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, world!";
const char *ptr = str.c_str();
std::cout << ptr << std::endl;
return 0;
}
```
c++如何将string转化为char*
可以使用 string 的 c_str() 方法来将 string 转换为 char* 类型,示例如下:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "hello world";
char* charArr = new char[str.length() + 1];
strcpy(charArr, str.c_str());
cout << charArr << endl;
delete []charArr;
return 0;
}
```
需要注意的是,使用 c_str() 方法返回的 char* 指针指向的字符串是只读的,不能修改,否则会导致运行时错误。如果需要修改字符串内容,可以使用 strcpy() 函数将其拷贝到另一个 char* 数组中。另外,由于 charArr 是通过 new 动态分配的内存,需要在使用完毕后使用 delete[] 释放内存,避免内存泄漏。
阅读全文