C++ std::string转const char
时间: 2023-08-10 10:05:04 浏览: 130
您可以使用`c_str()`函数将C++的`std::string`对象转换为`const char*`类型。这个函数返回一个以空字符结尾的C风格字符串,您可以将其作为`const char*`类型的常量指针使用。下面是一个示例:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, world!";
const char* cstr = str.c_str();
std::cout << cstr << std::endl;
return 0;
}
```
在上面的示例中,我们先创建了一个`std::string`对象`str`,然后使用`c_str()`函数将其转换为`const char*`类型的指针`cstr`。最后,我们使用`std::cout`输出`cstr`指向的C风格字符串。
请注意,`c_str()`返回的指针在`std::string`对象的生命周期内是有效的,但一旦`std::string`对象被销毁,返回的指针将不再有效。因此,在使用`c_str()`返回的指针时要小心,确保它所指向的数据仍然有效。
相关问题
std::string 转 const char*
可以使用 std::string 的 c_str() 函数将其转换为 const char* 类型,例如:
```c++
std::string str = "hello world";
const char* cstr = str.c_str();
```
这样就可以将 std::string 类型的 str 转换为 const char* 类型的 cstr。需要注意的是,c_str() 函数返回的指针只在当前 std::string 对象存在期间有效,一旦 std::string 对象被销毁,c_str() 返回的指针也就失效了。
std::string 如何转为const char *
可以使用std::string的c_str()成员函数将std::string转换为const char *类型。例如:
```c++
#include <iostream>
#include <string>
int main()
{
std::string s = "hello world";
const char *c_str = s.c_str(); // 将string类型转换为const char *类型
std::cout << c_str << std::endl;
return 0;
}
```
输出:
```
hello world
```
需要注意的是,c_str()函数返回的const char *指针指向的是std::string对象内部的字符数组,因此当std::string对象被销毁时,指针指向的字符数组也会被销毁。在使用c_str()函数返回的指针时,需要确保std::string对象的生命周期足够长,否则可能会出现未定义的行为。