所有这些查找函数返回值都是size_type类型(找到了)或者是一个名为 string::npos的特殊值(没找到)。 string::npos常用来表示没找到的结果或者string类型的末尾。 #include <iostream>#include<bitset>#include<string>intmain() {//string search functions return npos if nothing is foundstd::strings ="test";...
string::npos的值通常是std::string::size_type类型所能表示的最大值。由于std::string::size_type通常是一个无符号整数类型(如size_t),因此string::npos在数值上相当于该无符号整数类型的最大值。例如,在32位系统上,它可能等于4294967295(即2^32 - 1)。 给出string::npos的数值表示: 虽然string::npos在...
std:: string ::npos的定义:staticconstsize_tnpos =-1; 表示size_t的最大值( Maximum valueforsize_t) ,如果对-1表示size_t的最大值有疑问可以采用如下代码验证:#include<iostream>#include<limits>#include<string>usingnamespacestd;intmain(){size_tnpos =-1; cout <<"npos: "<< npos << endl; ...
在C++标准库中,"string::npos"是一个特殊的常数值,它被设计为一个容器类型,通常是std::basic_string_container_type::size_type。它的主要作用是表示一个非存在的位置或者索引。这个概念在处理字符串或其他容器的查找操作时尤其重要。npos的取值通常是一个预定义的负数值,比如-1,这样做的好处在于...
eg: c.find(‘H’,2)表示从字符串 c 的第三个字符开始查找字符’H’ 执行find()函数,若找到了用户设置的str,返回其在c中的下标,否则返回-1,或者说 npos 的值。npos的是类型的最大值,在这里表示没有找到匹配的字符段。 这里我的 npos 值为18446744073709551615。
string 类提供了 6 种查找函数,每种函数以不同形式的 find 命名。这些操作全都返回 string::size_type 类型的值,以下标形式标记查找匹配所发生的位置;或者返回一个名为 string::npos 的特殊值,说明查找没有匹配。string 类将 npos 定义为保证大于任何有效下标的值。
find_first_of(const charT* s, size_type pos, size_type n)size_type find_first_of(const charT* s, size_type pos = 0)size_type find_first_of(charT c, size_type pos = 0)所有的查找函数都返回一个size_type类型,这个返回值一般都是所找到字符串的位置,如果没有找到,则返回string::npos。
std::basic_string<CharT,Traits,Allocator>::nposstaticconstsize_type npos = -1; 这是特殊值,等于size_type类型可表示的最大值。准确含义依赖于语境,但通常,期待 string 下标的函数以之为字符串尾指示器,返回 string 下标的函数以之为错误指示器。
npos就是到头了的意思。一个字符串到头了就是npos了跟-1不-1没啥关系。
int rfind(const string &s,int pos = npos) const; //从pos开始从后向前查找字符串s中前n个字符组成的字符串在当前串中的位置,成功返回所在位置,失败时返回string::npos的值 int find_first_of(char c, int pos = 0) const;//从pos开始查找字符c第一次出现的位置 ...