Files
XCSDD/docs/api/containers/string/find.md
ssdfasd 58a83f445a fix: improve doc link navigation and tree display
- Fix link resolution with proper relative/absolute path handling
- Improve link styling with underline decoration
- Hide leaf nodes from tree, only show directories
- Fix log file path for packaged app
2026-03-19 12:44:08 +08:00

48 lines
1.4 KiB
Markdown
Raw Permalink 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/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) - 检查后缀