C++ string char*
时间: 2023-11-25 08:06:25 浏览: 34
在C++中,可以使用三种方法将string转换为char*。首先是使用data()方法,可以通过str.data()将string转换为const char*。其次是使用c_str()方法,可以通过str.c_str()将string转换为const char*。最后是使用copy()方法,可以通过str.copy(p, len, 0)将string复制到char数组中。其中,len代表要复制的字符数,0代表复制的起始位置。需要注意的是,使用copy()方法时需要手动添加结束符'\0'。
要将char*转换为string,可以直接将char*赋值给string对象,如string str = s。也可以将char数组赋值给string对象,如string str = s[20]。
在C语言中,可以将char* a[]赋值给char**,但是不能将char**赋值给char* a[],因为在char* a[]中,a作为数组名是一个常量,无法赋值。
相关问题
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*
可以使用string类的c_str()函数来将string类型转换为char*类型。
例如:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "hello world";
char* cstr = new char[str.length() + 1];
strcpy(cstr, str.c_str());
cout << cstr << endl;
delete[] cstr;
return 0;
}
```
其中,str.c_str()函数返回一个const char*类型的指针,指向string对象中的字符数组,然后使用strcpy函数将其复制到char*类型的cstr变量中。注意,为了避免内存泄漏,需要在使用完cstr后使用delete[]释放其占用的内存。