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
廣告

© . All rights reserved.