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:按字典序比较两个字符串。