C++string 给const char*
时间: 2023-09-18 13:09:42 浏览: 97
要将一个 C++ 的 `string` 转换为 `const char*` ,可以使用 `c_str` 方法。如下所示:
```c++
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, world!";
const char* c_str = str.c_str();
std::cout << c_str << std::endl;
return 0;
}
```
在上面的代码中,我们首先定义了一个 `string` 对象 `str`,然后使用 `c_str` 方法将其转换为 `const char*` 类型的指针 `c_str`,最后输出 `c_str` 的值。注意,`c_str` 返回的是一个指向以 `'\0'` 结尾的字符数组的指针,因此可以直接使用 `cout` 输出。
相关问题
c++中string和const char*的关系 ,他们之间如何相互转化
在 C++ 中,`string` 和 `const char*` 都是表示字符串的数据类型,但是它们的实现方式不同。
`string` 是 C++ 标准库中提供的一个字符串类型,它是一个类,提供了各种操作字符串的成员函数,比如查找、替换、插入等等。`const char*` 则是一个指向字符常量的指针,通常用于表示 C 风格的字符串。
要将 `string` 转为 `const char*`,可以使用 `c_str()` 成员函数,例如:
```
string s = "hello world";
const char* cstr = s.c_str();
```
这里 `c_str()` 函数返回一个指向内部字符数组的指针,该字符数组以空字符结尾。
要将 `const char*` 转为 `string`,可以使用 `string()` 构造函数或 `assign()` 成员函数,例如:
```
const char* cstr = "hello world";
string s = string(cstr);
// 或者
string another_s;
another_s.assign(cstr);
```
这里 `string()` 构造函数接受一个 `const char*` 参数,将其转为 `string`。`assign()` 成员函数也可以接受 `const char*` 参数,将其赋值给 `string` 对象。
需要注意的是,由于 `const char*` 指向的是字符常量,所以不能通过指针修改字符串内容。如果需要修改字符串,应该使用 `string` 类型。
C++ string 转换为 const char*
可以通过 `c_str()` 方法将 C++ 的 `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;
}
```
在上面的示例中,`c_str()` 方法返回一个指向字符串中第一个字符的指针,可以将其赋值给 `const char*` 类型的变量 `cstr`,然后即可使用该变量来访问 `string` 对象中的字符序列。注意,使用 `c_str()` 方法返回的指针只有在 `string` 对象存在的情况下才有效,否则可能会导致未定义的行为。
阅读全文