C++ String::find_first_of() 函数



C++ 的std::string::find_first_of 用于在字符串中查找指定字符集中任何字符的第一次出现。它搜索在给定字符串或字符集中找到的任何字符的第一个实例,并返回该字符的位置。如果未找到任何字符,则返回 std::string::npos。

语法

以下是 std::string::find_first_of() 函数的语法。

size_t find_first_of (const string& str, size_t pos = 0) const noexcept;
or	
size_t find_first_of (const char* s, size_t pos = 0) const;
or
size_t find_first_of (const char* s, size_t pos, size_t n) const;
or
size_t find_first_of (char c, size_t pos = 0) const noexcept;

参数

  • str − 指示要搜索的字符的另一个字符串。
  • pos − 指示要考虑在搜索中使用的字符串中第一个字符的位置。
  • s − 指示指向字符数组的指针。
  • n − 指示要搜索的字符值的个数。
  • c − 指示要搜索的单个字符。

返回值

此函数返回搜索到的字符的位置。

示例 1

在下面的示例中,我们将考虑 find_first_of() 函数的基本用法。

#include <iostream>
#include <string>
#include <cstddef>
int main() {
   std::string str("It replaces the vowels in this sentence by asterisks.");
   std::size_t found = str.find_first_of("aeiou");
   while (found != std::string::npos) {
      str[found] = '*';
      found = str.find_first_of("aeiou", found + 1);
   }
   std::cout << str << '\n';
   return 0;
}

输出

让我们编译并运行上述程序,这将产生以下结果:

It r*pl*c*s th* v*w*ls *n th*s s*nt*nc* by *st*r*sks.  

示例 2

在下面的代码中,我们初始化了字符串 x,并使用 find_first_of() 函数查找字符串 = 'morning' 的第一次出现位置。

#include<iostream>
#include<string>
using namespace std;
int main() {
   string x = "Good morning everyone!";
   cout << "String contains = " << x << endl;
   cout << "String character = " << x.find_first_of("morning");
   return 0;
}

输出

如果我们运行上述代码,它将生成以下输出。

String contains = Good morning everyone!
String character = 1

示例 3

在程序中,我们初始化了字符串 x 并将位置设置为 2。因此,它从第二个位置开始搜索 'morning' 的第一次出现。因此,在这里我们可以看到指定了开始搜索的位置。

#include<iostream>
#include<string>
using namespace std;
int main() {
   string x = "Good morning everyone!";
   cout << "String contains : " << x << '\n';
   cout << "searching from second position and finding the first occurrence of the 'morning' = " << x.find_first_of("morning", 2);
   return 0;
}

输出

以下是上述代码的输出。

String contains : Good morning everyone!
searching from second position and finding the first occurrence of the 'morning' = 2                          

示例 4

在下面的示例中,我们初始化了字符串 x,并使用 find_first_of() 函数查找单个字符第一次出现的位置。

#include<iostream>
#include<string>
using namespace std;
int main() {
   string x = "Tutorialspoint Company!";
   cout << "String = " << x << '\n';
   cout << "First occurrence position of 'u' character = " << x.find_first_of('u');
   return 0;
}  

输出

以下是上述代码的输出。

String = Tutorialspoint Company!
First occurrence position of 'u' character = 1       
string.htm
广告