c++中 string转char*
时间: 2023-10-23 21:12:03 浏览: 100
可以使用string的成员函数.c_str()来获取一个指向以空字符结尾的字符数组的指针,即char*类型的指针。
例如:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "hello world";
char* charPtr = const_cast<char*>(str.c_str());
cout << charPtr << endl;
return 0;
}
```
这里使用了const_cast来去除c_str返回值的const属性,因为char*类型的指针不具有const属性。
相关问题
C++ String 转char*
C++中的`std::string`类提供了一个成员函数`c_str()`,可以将`std::string`对象转换为C风格的字符串即`char*`类型。
示例代码:
```c++
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, world!";
const char* cstr = str.c_str(); // 转换为char*
std::cout << cstr << std::endl; // 输出字符串
return 0;
}
```
注意,`c_str()`返回的是一个指向`const char`类型的指针,因此不能修改字符串内容。如果需要修改字符串内容,可以使用`char*`类型的变量,并将`std::string`对象的内容复制到该变量中。例如:
```c++
#include <iostream>
#include <cstring>
#include <string>
int main() {
std::string str = "Hello, world!";
char* cstr = new char[str.length() + 1]; // 创建char*类型的变量
std::strcpy(cstr, str.c_str()); // 将std::string对象的内容复制到char*变量中
std::cout << cstr << std::endl; // 输出字符串
delete[] cstr; // 释放内存
return 0;
}
```
c++中string转换为*char
可以使用`c_str()`方法将`std::string`类型转换为`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`类型转换为`char*`类型,可以使用`&str[0]`或者`str.data()`方法,如下所示:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, World!";
char* cstr = &str[0];
std::cout << cstr << std::endl;
return 0;
}
```
需要注意的是,在使用`&str[0]`或者`str.data()`方法转换为`char*`类型时,必须保证`std::string`对象不为空,否则会产生未定义行为。同时也需要注意,在使用`char*`类型时,需要手动管理内存的分配和释放。
阅读全文