C++ String::find() 函式



C++ 的std::string::find()函式用於檢測子字串在字串中的位置。此函式返回指定子字串或字元第一次出現的索引。如果未找到子字串,則返回string::npos,這是一個表示無效位置的常量。

此函式有幾個過載版本,允許靈活地進行搜尋,可以選擇是否指定起始位置。

語法

以下是std::string::find()函式的語法。

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

引數

  • str − 指示另一個字串物件。
  • s − 指向字元陣列的指標。
  • pos − 指示字串中第一個字元的位置。
  • n − 指示要匹配的字元序列的長度
  • c − 指示要搜尋的單個字元。

返回值

此函式返回第一次匹配的第一個字元的位置。

示例 1

在下面的程式中,我們初始化了字串 x = "Tutorialspoint is a educate company!",並使用 string::find() 函式指定了要搜尋的位置為 "educate"。因此,它會列印該特定單詞第一個字元的位置。

#include<iostream>
#include<string>
using namespace std;
int main() {
   string x = "Tutorialspoint is a educate company ";
   cout << x << '\n';
   cout << " educate Position = ";
   cout << x.find("educate");
   return 0;
}

輸出

如果我們執行上面的程式碼,它將生成以下輸出。

Tutorialspoint is a educate company
educate Position = 20

示例 2

在下面的程式中,我們初始化了字串 x = “I am a employee in Tutorialspoint”。在這裡,我們透過給出 x.find(“employee”, 5) 來將位置作為引數傳遞。因此,輸出將使用 string::find() 函式列印。

#include<iostream>
#include<string>
using namespace std;
int main() {
   string x = " I am a employee in Tutorialspoint ";
   cout << x << endl;
   cout << " position of employee = ";
   cout << x.find(" employee", 5);
   return 0;
}

輸出

以下是上述程式碼的輸出。

I am a employee in Tutorialspoint
position of employee = 7                             

示例 3

以下程式中,我們初始化了字串 x = “Tutorialspoint Company!”。在這裡,我們使用 string::find() 函式在字串中查詢單個字元。

#include<iostream>
#include<string>
using namespace std;
int main() {
   string x = " Tutorialspoint Company ";
   cout << "String = " << x << endl;
   cout << "position = " << x.find('C');
   return 0;
}  

輸出

以下是上述程式碼的輸出。

String = Tutorialspoint Company
position = 15          
string.htm
廣告