`c_str()` 是 C++ `std::string` 类的一个成员函数,其原型为:
```cpp
const char* c_str() const;
```
该函数 返回一个指向以 null 终止的 C 风格字符串的指针,该指针指向的字符串内容与本 `std::string` 对象的内容相同。通过 `c_str()` 函数可以将 `std::string` 对象转换为 C 语言中的字符串格式,以便与那些接受 `char*` 参数的 C 函数兼容。
需要注意的是,`c_str()` 返回的指针指向的是 `std::string` 对象内部的字符数组,因此你不应该尝试修改指针指向的内容。同时,由于 `std::string` 对象可能在任何时候被析构,所以返回的指针可能变得无效。因此,在操作 `c_str()` 返回的指针时,应当确保 `std::string` 对象在指针使用期间保持有效。
```cpp
include include include int main() { std::string s = "Hello World!"; const char* c_str_ptr = s.c_str(); std::cout << c_str_ptr << std::endl; // 输出 "Hello World!" char buffer; std::strcpy(buffer, s.c_str()); // 将 s 的内容复制到 buffer 中 std::cout << buffer << std::endl; // 输出 "Hello World!" return 0; } ``` 在上面的示例中,我们首先使用 `c_str()` 将 `std::string` 对象转换为 `const char*` 类型的指针,然后将其用于输出和复制操作。