c++将string转换成char*
时间: 2023-11-26 21:04:30 浏览: 108
可以通过string的成员函数c_str()来获取一个指向以空字符结尾的字符数组的指针,即char*类型的指针。
示例代码:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "hello world";
char *cstr = &str[0];
cout << "cstr: " << cstr << endl;
return 0;
}
```
输出结果:
```
cstr: hello world
```
需要注意的是,将string转换为char*类型时,需要确保string不为空,否则指针可能会指向无效内存地址。
相关问题
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++
string str = "hello";
char* cstr = &str[0];
```
或者:
```c++
string str = "world";
const char* cstr = str.c_str();
```
需要注意的是,如果使用第一种方法,需要确保string不为空,否则会出现未定义的行为。
阅读全文