string类中find的用法
在C++的string类中,`find` 是一个用于查子字符串在字符串中的位置的成员函数。它可以帮助你确定一个字符串中是否包含另一个子字符串,以及子字符串的位置。
`find` 函数有多个重载版本,可以根据不同参数进行使用。以下是其常见的用法:
1. 基本用法:
  ```cpp
  size_t find(const string& str, size_t pos = 0) const;
  ```
  这个版本的 `find` 函数会在调用字符串中从 `pos` 开始的位置查子字符串 `str`。如果到了子字符串,它将返回第一个匹配的位置(位置从0开始计数)。如果未到子字符串,它将返回 `string::npos`。
  示例:
  ```cpp
  string text = "Hello, world!";
  size_t position = text.find("world"); // 返回 7
  ```
2. 限制搜索范围:
  ```cpp
  size_t find(const string& str, size_t pos, size_t len) const;
  ```
  这个版本的 `find` 函数允许你限制搜索范围,从 `pos` 开始的位置查子字符串 `str`,但只搜索前 `len` 个字符。如果到了子字符串,它将返回第一个匹配的位置。如果未到子字符串,它将返回 `string::npos`。
子字符串是什么
  示例:
  ```cpp
  string text = "Hello, world!";
  size_t position = text.find("world", 0, 5); // 返回 string::npos,因为在前5个字符内没有匹配
  ```
3. 查字符:
  ```cpp
  size_t find(char ch, size_t pos = 0) const;
  ```
  这个版本的 `find` 函数用于查特定字符 `ch` 在字符串中的位置。它从 `pos` 开始的位置查字符 `ch`,并返回第一个匹配的位置。如果未到字符,它将返回 `string::npos`。
  示例:
  ```cpp
  string text = "Hello, world!";
  size_t position = text.find('o'); // 返回 4,到第一个 'o' 的位置
  ```
4. 多次查:
  `find` 函数可以多次调用,以查字符串中的所有匹配项。
  示例:
  ```cpp
  string text = "Hello, world!";
  size_t position = text.find("o"); // 返回 4,到第一个 'o' 的位置
  while (position != string::npos) {
      cout << "Found 'o' at position " << position << endl;
      position = text.find("o", position + 1); // 继续查下一个 'o'
  }
  ```
`find` 函数是在string类中用于查子字符串的强大工具,可以帮助你执行各种字符串操作和搜索任务。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。