string::npos的解释如下:
昨天写的逻辑判断,对find返回npos的意义理解的很模糊,查看了cpp primer后发现下面的内容,得知find方法返回一个名为 string::npos 的特殊值,说明查找没有匹配。粘上以备记忆.
The string
class provides six search functions, each named as a variant of find
. The operations all return a string::size_type
value that is the index of where the match occurred, or a special value named string::npos
if there is no match. The string
class defines npos
as a value that is guaranteed to be greater than any valid index.
string 类提供了 6 种查找函数,每种函数以不同形式的 find 命名。这些操作全都返回
string::size_type 类型的值,以下标形式标记查找匹配所发生的位置;或者返回一个名为 string::npos
的特殊值,说明查找没有匹配。string 类将 npos 定义为保证大于任何有效下标的值。
例如:
string str="http://www.my400800.cn
";
pos=str.find_first_of("www");
if(pos!=string::npos)
{
}
分享到:
相关推荐
2. **`FindOneOf()`**:与`std::string::find_first_of()`对应,返回第一个匹配字符的索引。例如: ```cpp CString str = _T("abcdef"); int index = str.FindOneOf(_T("bc")); ``` 3. **`FindLastOf()`**:类似...
- `find_last_of(set, pos=npos)`查找最后一个出现在set中的字符的位置。 - `find_first_not_of(set, pos=0)`查找第一个不在set中的字符的位置。 - `find_last_not_of(set, pos=npos)`查找最后一个不在set中的...
`size_t find_first_of(const string& str, size_t pos = 0) const;` 找到字符串中首次出现的指定字符或子串的位置。例如,`s.find_first_of("abc", 0)` 寻找字符串中首次出现的 "abc" 中的字符。 **1.2.18 find_...
- `find_first_of()`: 查找第一个出现的指定集合中的字符。 - `find_last_of()`: 查找最后一个出现的指定集合中的字符。 - `substr()`: 提取子串,例如`str.substr(pos, len)`。 6. **拷贝与赋值**: - `copy()...
size_t start = line.find_first_of(": =") + 1; size_t end = line.find_last_of(" ."); if (start != std::string::npos && end != std::string::npos) { ips.push_back(line.substr(start, end - start)); }...
- `find_last_of(const std::string& str, size_t pos = npos)`:查找最后一个出现的在子串中的字符。 - `find_first_not_of(const std::string& str, size_t pos = 0)`:查找第一个不在子串中的字符。 - `find_...
除了基本的 `find()`,C++ `std::string` 还提供了其他变体,如 `find_first_of()`, `find_first_not_of()`, `find_last_of()` 和 `find_last_not_of()`。这些函数帮助我们实现更复杂的搜索需求。 1. `find_first_...
- `find_first_not_of()`和`find_last_not_of()`:查找第一个不包含在指定字符集中的字符。 ```cpp size_t first_diff = str.find_first_not_of("aeiou"); // 查找第一个非元音字母 size_t last_diff = str.find...
- `find_last_of()`, `find_first_not_of()`, `find_last_not_of()`:分别用于查找最后出现的匹配字符、首次不匹配的字符和最后不匹配的字符。 - `insert()`:在字符串的指定位置插入字符或字符串。 - `replace()...
3. **查找第一个非空格字符的位置**:使用`find_first_not_of(' ')`函数找到第一个非空格字符的位置。 4. **删除从字符串开头到第一个非空格字符之前的部分**:如果找到了非空格字符,则使用`erase`函数删除从字符串...
- `find_first_of()`: 查找第一个出现在给定字符集中字符的位置。 - `c_str()`: 转换为C风格的字符数组(const char*)。 - `data()`: 类似`c_str()`,但不保证末尾有空字符。 6. **流操作**: - C++标准库中的...
还可以使用 `find()`、`find_first_of()`、`find_last_of()` 等函数搜索子串,以及 `substr()` 创建子串。例如,查找字符串中的子串: ```cpp size_t pos = str1.find("World"); if (pos != std::string::npos) { ...
在C++标准库中,虽然没有直接的`replace`函数,但我们可以结合`find_first_of()`, `find_first_not_of()`, 和`substr()`等方法来实现类似的功能。例如,如果我们想要替换所有`oldStr`,可以这样实现: ```cpp std::...
在写C++程序中,总会遇到要从一个字符串中查找一小段子字符串的情况,...find_first_of():在一个目标串中进行查找,返回值是第一个与指定字符组中任何字符匹配的字符位置。如果没有查找到匹配的内容,则返回npos。 fin
5. `find_first_not_of()`: 查找字符串中首次出现不在给定字符集中的字符的位置。 6. `find_last_not_of()`: 类似`find_first_not_of()`,但从后向前查找。 四、字符串提取 1. `substr()`: 提取字符串的一部分,如`...
在ANSI标准C++中,`string`是处理文本数据时非常重要的工具之一,它提供了丰富的功能来方便地操作字符串。本文将详细介绍`string`的基本使用方法及其常用的操作函数。 ##### 1.1 `string`类型的使用 `string`类型...
- `find_first_of`, `find_last_of`, `find_first_not_of`, `find_last_not_of`等方法提供了更多的搜索功能。 ### 总结 通过上述介绍可以看出,C++中的`std::string`类极大地提高了字符串处理的安全性和便利性。...