Files
XCEngine/docs/api/containers/string/find.md

48 lines
1.4 KiB
Markdown
Raw Normal View History

# String::Find
```cpp
SizeType Find(const char* str, SizeType pos = 0) const;
```
在字符串中查找子串 `str`,从位置 `pos` 开始搜索。
**参数:**
- `str` - 要查找的以 null 结尾的 C 字符串
- `pos` - 开始搜索的位置,默认为 0
**返回:** 子串首次出现的起始位置;如果未找到,返回 `String::npos`
**复杂度:** O(n * m),其中 n 为原字符串长度m 为要查找的字符串长度
**示例:**
```cpp
#include "XCEngine/Core/Containers/String.h"
#include <iostream>
int main() {
XCEngine::Containers::String s("Hello World, Hello Universe");
XCEngine::Containers::String::SizeType pos1 = s.Find("World");
std::cout << "Found at: " << pos1 << std::endl; // 输出: Found at: 6
XCEngine::Containers::String::SizeType pos2 = s.Find("Hello", 0);
std::cout << "First 'Hello' at: " << pos2 << std::endl; // 输出: First 'Hello' at: 0
XCEngine::Containers::String::SizeType pos3 = s.Find("Hello", 7);
std::cout << "Second 'Hello' at: " << pos3 << std::endl; // 输出: Second 'Hello' at: 13
XCEngine::Containers::String::SizeType pos4 = s.Find("NotFound");
if (pos4 == XCEngine::Containers::String::npos) {
std::cout << "Not found" << std::endl; // 输出: Not found
}
return 0;
}
```
## 相关文档
- [String 总览](string.md) - 返回类总览
- [StartsWith](starts-with.md) - 检查前缀
- [EndsWith](ends-with.md) - 检查后缀