21xrx.com
2024-05-20 17:42:44 Monday
登录
文章检索 我的文章 写文章
C++中的字符串查找函数(find)详解(含中文)
2023-07-12 11:44:01 深夜i     --     --
C++ 字符串查找函数 find 详解 中文

在C++中,查找一个子串在一个字符串中的位置是常见的操作,这时就用到了字符串查找函数——find()。在本文中,我们将详细介绍C++中的字符串查找函数,包括语法、返回值和使用方法,帮助我们更好地理解它的运作。

一、语法和返回值

C++中的字符串查找函数的语法如下:


size_t find (const string& str, size_t pos = 0) const noexcept;

函数的第一个参数是要查找的子串,可以是一个字符串变量、字符串常量、字符变量或字符常量。pos是一个可选参数,指定了查找子串的起始位置。如果未指定,则默认从字符串的开头开始查找。函数的返回值是一个size_t类型的值,表示了查找结果。

如果查找成功,则返回子串在原始字符串中的位置索引,从0开始计数;如果查找失败,则返回string::npos,即-1。因此,当我们判断find()函数的返回值是否等于string::npos时,就可以判断一个子串是否存在于原始字符串中。

二、使用方法

下面是一些使用字符串find()函数的示例:

1、查找一个字符串中是否存在某个子串


#include <string>

#include <iostream>

using namespace std;

int main() {

  string s = "hello world";

  string sub = "world";

  if (s.find(sub) != string::npos)

    cout << "Substring found!" << endl;

  

  else

    cout << "Substring not found!" << endl;

  

  return 0;

}

上述代码将在s中查找子串sub。由于sub存在于s中,因此输出结果为“Substring found!”。

2、指定查找的起始位置


#include <string>

#include <iostream>

using namespace std;

int main() {

  string s = "hello world";

  string sub = "l";

  size_t pos = 3;

  if (s.find(sub, pos) != string::npos)

    cout << "Substring found!" << endl;

  

  else

    cout << "Substring not found!" << endl;

  

  return 0;

}

上述代码将在s中从位置3开始查找子串sub。由于在此位置找到了子串,因此输出结果为“Substring found!”。

3、查找字符变量或字符常量


#include <string>

#include <iostream>

using namespace std;

int main() {

  string s = "hello world";

  char c = 'l';

  if (s.find(c) != string::npos)

    cout << "Character found!" << endl;

  

  else

    cout << "Character not found!" << endl;

  

  return 0;

}

上述代码将在s中查找字符变量c。由于c可以转换为一个长度为1的字符串,且存在于s中,因此输出结果为“Character found!”。

结论

C++中的字符串查找函数find()是一个很有用的工具,能够帮助我们轻松地查找一个字符串中的子串或字符。使用它可以大大简化我们的字符串操作。掌握了这个函数的使用方法,我们将更加游刃有余地处理字符串。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复