📅  最后修改于: 2023-12-03 15:13:56.181000             🧑  作者: Mango
在C++ STL(标准模板库)中,basic_string是一个字符串类模板,它提供了一些很有用的成员函数用于操作字符串。其中一个函数是c_str函数。
c_str函数的定义如下:
const char* c_str() const noexcept;
该函数返回一个指向字符串的首字符的指针(const char*),并在字符串末尾自动添加一个空字符'\0',以表示字符串的结尾。
由于返回值是指向常量的指针(const char*),所以不建议在函数外部修改返回的指针所指向的字符串。
下面是一个使用c_str函数的示例程序:
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, world!";
const char* cstr = str.c_str();
std::cout << "c_str() returns: " << cstr << std::endl;
return 0;
}
程序输出:
c_str() returns: Hello, world!
该程序首先定义了一个std::string类型的对象str,并将其赋值为"Hello, world!"。接着,使用c_str函数将该字符串转换成了const char*类型的指针cstr,并通过std::cout输出了该指针所指向的字符串。
由于c_str函数自动在字符串末尾添加了空字符'\0',所以输出的字符串与原来的字符串是完全一致的。
c_str函数是C++ STL中的basic_string类模板提供的一个很有用的成员函数,它可以将basic_string类型的字符串转换为C风格的字符串(以'\0'结尾的char类型数组),并返回一个指向该数组的指针。在实际开发中,我们可以使用该函数将basic_string类型的字符串传递给需要C风格字符串参数的函数。