C++ string转char*
时间: 2023-08-04 13:04:07 浏览: 81
可以使用`c_str()`函数将C++的`string`转换成`char*`,例如:
```c++
#include <iostream>
#include <string>
int main() {
std::string my_str = "Hello, world!";
const char* my_cstr = my_str.c_str();
std::cout << my_cstr << std::endl;
return 0;
}
```
在上面的代码中,`my_str.c_str()`返回一个指向`my_str`存储的字符串的常量指针,可以将其赋值给`const char*`类型的变量。注意,返回的指针是常量指针,因此不能修改指向的字符串。
相关问题
c++ string 转 char*
将字符串转换为char*的方法是使用字符串的c_str()函数,它返回一个指向字符串中第一个字符的指针。示例代码如下:
```c++
#include <iostream>
#include <string>
int main()
{
std::string str = "Hello World";
char* cstr = &str[0];
std::cout << cstr << std::endl;
return 0;
}
```
在上面的示例代码中,我们首先定义了一个std::string类型的变量str,并设置其值为"Hello World"。然后我们使用&str[0]获取字符串的首地址,并将其赋值给一个char*类型的变量cstr。最后,我们打印cstr的值,即可看到字符串转换为char*的结果。
c++string转char*
可以通过以下代码将C++的string类型转换为char*类型:
```cpp
#include <iostream>
#include <cstring>
int main() {
std::string str = "Hello, world!";
char* cstr = new char[str.length() + 1];
std::strcpy(cstr, str.c_str());
std::cout << cstr << std::endl;
delete[] cstr;
return 0;
}
```
在上面的代码中,我们首先声明了一个C++的string类型变量str,并将其初始化为"Hello, world!"。接着,我们使用new操作符动态分配了一个char数组,大小为字符串长度+1(因为要留出空间存放字符串结尾的'\0'字符)。然后,我们使用strcpy函数将字符串拷贝到char数组中,并输出数组内容。最后,我们使用delete[]操作符释放了动态分配的内存。
需要注意的是,由于C++的string类型中可能包含'\0'字符,因此我们不能直接使用字符串的长度来分配数组大小,而是要将字符串长度+1作为数组大小。另外,由于我们动态分配了内存,因此需要手动释放内存,否则会造成内存泄漏。
阅读全文