C++ string find第一个字符[和最后一个字符]
时间: 2024-09-27 10:09:46 浏览: 28
详解C++ string常用截取字符串方法
在C++中,`std::string` 类型有一个成员函数叫做 `find()`,用于查找指定子串在字符串中的位置。如果你想找到第一个字符或最后一个字符的位置,你可以这样做:
1. **查找第一个字符**:
如果你想找到第一个特定字符,可以创建一个只包含该字符的小字符串,然后调用 `find()`。例如,如果你要找的是 'a':
```cpp
std::string str = "example";
char target_char = 'a';
size_t pos = str.find(target_char);
if (pos != std::string::npos) {
// 字符 'a' 存在于 str 中,其位置从0开始计数
}
```
2. **查找最后一个字符**:
要找最后一个特定字符,可以先遍历整个字符串,每次递减地查找目标字符的位置直到找不到为止。由于C++标准库没有直接提供这样的功能,你需要自定义一个函数或者使用循环和条件判断:
```cpp
size_t last_pos = std::string::npos;
for (size_t i = str.length() - 1; i > 0; --i) {
if (str[i] == target_char) {
last_pos = i;
break;
}
}
```
或者使用STL算法,但需注意`rbegin`和`rend`是从后向前迭代:
```cpp
auto it = std::find_if_not(str.rbegin(), str.rend(), [target_char](char c) { return c == target_char; });
if (it != str.rend()) {
last_pos = std::distance(str.begin(), it);
}
```
阅读全文