c++字符串string寻找子字符的位置find、rfind、find_first_of、find_last_of

  1. size_t find (const string& str, size_t pos = 0)
    说明:在字符串里面找到第一个匹配项,并返回位置。如果没有找到匹配项,该函数将返回string::npos。
#include <iostream>
#include <string>

int main ()
{
  std::string str ("123456789.");
  std::size_t found = str.find("5");
  if (found!=std::string::npos)
    std::cout << found << '\n';
  return 0;
}

2.size_t rfind (const string& str, size_t pos = npos)
说明:在字符串中搜索由其参数str指定的序列的最后一个匹配项。如果没有找到匹配项,该函数将返回string::npos。

#include <iostream>
#include <string>

int main ()
{
  std::string str ("1234568888889.");
  std::size_t found = str.find("8");
  if (found!=std::string::npos)
    std::cout << found << '\n';
  return 0;
}

3.size_t find_first_of (const string& str, size_t pos = 0)
说明:在字符串中搜索与其参数str中指定的任意字符匹配的第一个字符。如果没有找到匹配项,该函数将返回string::npos。

4.size_t find_last_of (const string& str, size_t pos = npos)
说明:在字符串中搜索与其参数str中指定的任意字符匹配的最后一个字符。如果没有找到匹配项,该函数将返回string::npos。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
除了 `find_first_of`,`std::string` 类还有一些其他的查找函数,它们的作用都是在字符串查找指定字符字符集的位置。下面是几个常用的查找函数及其功能: 1. `find(char ch, size_t pos = 0) const`:在字符串查找字符 `ch` 的位置,从 `pos` 位置开始查找,默认值为 0。 ```cpp std::string s = "hello, world!"; size_t pos = s.find('o'); // 返回 4 ``` 2. `rfind(char ch, size_t pos = npos) const`:在字符串查找字符 `ch` 的位置,从 `pos` 位置往前查找,`npos` 表示从字符串的末尾开始查找。 ```cpp std::string s = "hello, world!"; size_t pos = s.rfind('o'); // 返回 8 ``` 3. `find_first_of(const char* str, size_t pos = 0) const`:在字符串查找一个匹配指定字符任意一个字符位置。 ```cpp std::string s = "hello, world!"; size_t pos = s.find_first_of("ow"); // 返回 4 ``` 4. `find_last_of(const char* str, size_t pos = npos) const`:在字符串查找最后一个匹配指定字符任意一个字符位置。 ```cpp std::string s = "hello, world!"; size_t pos = s.find_last_of("ow"); // 返回 9 ``` 5. `find_first_not_of(const char* str, size_t pos = 0) const`:在字符串查找一个不匹配指定字符任意一个字符位置。 ```cpp std::string s = "hello, world!"; size_t pos = s.find_first_not_of("helo, "); // 返回 5 ``` 6. `find_last_not_of(const char* str, size_t pos = npos) const`:在字符串查找最后一个不匹配指定字符任意一个字符位置。 ```cpp std::string s = "hello, world!"; size_t pos = s.find_last_not_of("dlrow!"); // 返回 10 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值