7. 字符串操作
7.1 c_str() 和 data()
const char* c_str() const;
该函数返回 string 对象底层字符数组的指针,且通过返回的指针不能修改字符串内容。
实现非常简单,直接返回内部指针即可:
const char* string::c_str() const {
return _str;
}
这里有个关键点需要注意:如果你获取了返回值并存储下来,后续对 string 对象进行了可能导致内存重新分配的操作(如追加、插入),那么之前存储的指针就会失效,变成野指针。这个接口主要是为了兼容那些只接受 C 风格字符串的旧接口。
data() 接口的效果与 c_str() 基本一致,但在某些标准版本中行为略有差异,通常建议优先使用 c_str() 以确保兼容性。
7.2 find()
find() 提供了多种重载形式:
size_t find(const string& str, size_t pos = 0) const;
size_t find(const char* s, size_t pos = 0) const;
size_t find(const char* s, size_t pos, size_t n) const;
size_t find ;


