设为首页 加入收藏

TOP

8.11.5 搜索字符串(3)
2013-10-07 16:11:07 来源: 作者: 【 】 浏览:71
Tags:8.11.5 搜索 字符串

8.11.5  搜索字符串(3)

这次从字符串末尾索引位置string::npos开始后向搜索,因为这是默认开始位置。该代码片段的输出为:

  1. The string to be searched is:  
  2. Smith, where Jones had had "had had", "had had" had. "Had had" had had  
  3. the examiners' approval.  
  4. Characters from the string "had" were found 38 times in the string above.  

结果应当不出意料。记住,我们正在搜索字符串str中出现的"had"中的任何字符。"Had"和"had"单词中有32个,其他单词中有6个。因为我们在沿着字符串后向搜索,因此当发现一个字符时,递减循环内的offset。

最后一组搜索函数是find_first_not_of()和find_last_not_of()函数的各个版本,如表8-5所示。表中的所有函数都定义为const,并返回size_t类型的值。

表  8-5

   
   
find_first_not_of(
char ch,
size_t offset=0)
在string对象中搜索从offset索引位置开始第
一次出现的不是字符ch的字符,并返回发现
字符的索引位置值,类型为size_t。如果省略第
二个实参,offset的默认值就为0
find_first_not_of(
const char* pstr,
size_t offset=0)
在string对象中搜索从offset索引位置开始第一
次出现的不在以空字符结尾的字符串pstr中
的字符,并返回发现字符的索引位置值,类型为
size_t。如果省略第二个实参,offset的默认值就为0
find_first_not_of(
const char* pstr,
size_t offset,
size_t count)
在string对象中搜索从offset索引位置开始第一次
出现的不在以空字符结尾的字符串pstr中的前count
个字符中的任何字符,并返回发现字符的索引位置值,类型为size_t
find_first_not_of(
const string& str,
size_t offset=0)
在string对象中搜索从offset索引位置开始第一次
出现的不在字符串str中的任何字符,并返回发现字
符的索引位置值,类型为size_t。如果省略第二个实
参,offset的默认值就为0
find_last_not_of(
char ch,
size_t offset=npos)
在string对象中向后搜索从offset索引位置开始最后
一次出现的不是字符ch的字符,并返回发现该字符
的索引位置值,类型为size_t。如果省略第二个实参,
offset的默认值就为字符串的末尾字符npos

(续表)

   
   
find_last_not_of(
const char* pstr,
size_t offset=npos)
在string对象中向后搜索从offset索引位置开始
最后一次出现的不在以空字符结尾的字符串pstr
中的任何字符,并返回发现该字符的索引位置值,
类型为size_t。如果省略第二个实参,offset的默认值
就为字符串的末尾字符npos
find_last_not_of(
const char* pstr,
size_t offset,
size_t count)
在string对象中向后搜索从offset索引位置开始最后
一次出现的不在以空字符结尾的字符串pstr中的前
count个字符中的字符。该函数返回发现该字符的索
引位置值,类型为size_t
find_last_not_of(
const string& str,
size_t offset=npos)
在string对象中向后搜索从offset索引位置开始最
后一次出现的不在字符串str中的任何字符,并返
回发现该字符的索引位置值,类型为size_t。如果
省略第二个实参,offset的默认值就为字符
的末尾字符npos

对于前面的这些搜索函数,如果没有搜索到匹配的字符,那么将返回string::npos。这些函数有很多用法,通常用来在字符串中查找可能由各种字符隔开的令牌(token)。例如,用空格和标点符号隔开的单词组成的文本,因此,可以用这些函数在文本块中查找单词。下面举例说明其工作过程。
 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇14.2.2 CDC类(5) 下一篇8.11.5 搜索字符串(4)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·数据库:推荐几款 Re (2025-12-25 12:17:11)
·如何最简单、通俗地 (2025-12-25 12:17:09)
·什么是Redis?为什么 (2025-12-25 12:17:06)
·对于一个想入坑Linux (2025-12-25 11:49:07)
·Linux 怎么读? (2025-12-25 11:49:04)