c++实现mystring类的find函数
时间: 2023-08-23 14:08:27 浏览: 75
好的,关于实现mystring类的find函数,我可以帮您解答。mystring类可以类比于STL中的string类,其find函数的作用是在一个字符串中查找一个特定的字符或子串,返回该字符或子串第一次出现的位置。下面是mystring类的find函数的大致实现:
```C++
class mystring {
public:
// ...
size_t find(const char* str, size_t pos = 0) const {
size_t len = strlen(str);
for (size_t i = pos; i <= m_size - len; ++i) {
int j = 0;
while (j < len && m_data[i + j] == str[j])
++j;
if (j == len)
return i;
}
return -1;
}
// ...
private:
char* m_data;
size_t m_size;
};
```
在该实现中,我们首先通过传入的子串计算出其长度len,然后从起始位置pos开始,循环遍历mystring字符串的所有可能的起始位置,进行子串匹配。具体的匹配方式是按照字符串的每一个字符进行比较,一旦发现有不同,则立即退出匹配;如果到了最后一个字符,且一一对应,说明找到了匹配位置。如果遍历完了整个字符串都没有匹配上,则返回-1。