C++ 标准库 - <string>

C++ std::string::c_str() 返回指向内部缓冲的 const char*,保证以空字符结尾,便于调用只接受 C 字符串的接口。

原型

const char* c_str() const;

参数

  • 无参数。

返回值

只读指针,指向当前内容。指针在对象销毁、或随后修改导致重新分配后失效。

示例

#include <cstdio>
#include <string>

int main() {
    std::string s = "hello";
    std::printf("%s\n", s.c_str());
    return 0;
}

输出:

hello

注意事项

不要用 c_str() 的返回值去写回字符;需要可写缓冲时应复制到自己的数组。C++ 也提供 data();在较新标准中非 const 的 data() 可写,但仍须遵守长度,不可假设可在末尾额外写入。

下一页介绍compare:按字典序比较两个字符串。