• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++string中find(),rfind()等函数用法总结及示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
string中 find()的应用  (rfind() 类似,只是从反向查找)
原型如下:
(1)size_t find (const string& str, size_t pos = 0) const;  //查找对象--string类对象
(2)size_t find (const char* s, size_t pos = 0) const; //查找对象--字符串
(3)size_t find (const char* s, size_t pos, size_t n) const;  //查找对象--字符串的前n个字符
(4)size_t find (char c, size_t pos = 0) const;  //查找对象--字符
结果:找到 -- 返回 第一个字符的索引
     没找到--返回   string::npos
 
示例:
 1  
 2 #include <iostream> // std::cout
 3  
 4 #include <string> // std::string
 5  
 6  
 7  
 8 int main ()
 9  
10 {
11  
12 std::string str ("There are two needles in this haystack with needles.");
13  
14 std::string str2 ("needle");
15  
16  
17  
18 // different member versions of find in the same order as above:
19  
20 std::size_t found = str.find(str2);
21  
22 if (found!=std::string::npos)
23  
24 std::cout << "first 'needle' found at: " << found << '\n';
25  
26  
27  
28 found=str.find("needles are small",found+1,6);
29  
30 if (found!=std::string::npos)
31  
32 std::cout << "second 'needle' found at: " << found << '\n';
33  
34  
35  
36 found=str.find("haystack");
37  
38 if (found!=std::string::npos)
39  
40 std::cout << "'haystack' also found at: " << found << '\n';
41  
42  
43  
44 found=str.find('.');
45  
46 if (found!=std::string::npos)
47  
48 std::cout << "Period found at: " << found << '\n';
49  
50  
51  
52 // let's replace the first needle:
53  
54 str.replace(str.find(str2),str2.length(),"preposition"); //replace 用法
55  
56 std::cout << str << '\n';
57  
58  
59  
60 return 0;
61  
62 }

 


结果:
first 'needle' found at: 14
second 'needle' found at: 44
'haystack' also found at: 30
Period found at: 51
There are two prepositions in this haystack with needles
 
 

 

int find_first_of(char c, int pos = 0) const;//从pos开始查找字符c第一次出现的位置
int find_first_of(const char *s, int pos = 0) const; //从pos开始查找当前串中第一个在s的前n个字符组成的数组里的字符的位置
int find_first_of(const char *s, int pos, int n) const;
int find_first_of(const string &s,int pos = 0) const;

 

共同点:

查找成功时返回所在位置,失败返回string::npos的值,string::npos一般是MAX_INT(即2^32 - 1)

 

差异:

find(): 查找字符串中第一次出现字符c、字符串s的位置;

find_first_of(): 查找字符串中字符c、字符数组s中任意一个字符第一次出现的位置。


类似的,还有rfind()和find_last_of(),以及find_first_not_of(), find_last_not_of().


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
c++打印蛇形矩阵发布时间:2022-07-14
下一篇:
C#中特性(Attribute)的使用简介发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap