Files
XCEngine/docs/api/containers/string/find.md
ssdfasd 5c3566774b docs: 更新 containers 和 threading 模块文档
- containers: 更新 string 类的多个方法文档
- threading: 更新 mutex 和 task-group 方法文档
2026-03-26 01:59:14 +08:00

48 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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) - 检查后缀