[C++]String::find

2702 ワード

一、定義
string (1)
size_t find (const string& str, size_t pos = 0) const;

c-string (2)
size_t find (const char* s, size_t pos = 0) const;

buffer (3)
size_t find (const char* s, size_t pos, size_t n) const;

character (4)
size_t find (char c, size_t pos = 0) const;

str 。 pos , pos , pos
find_first_of , , , pos


二、パラメータ
str
検索する文字列
pos
検索文字列の数番目の文字から検索を開始
検索文字列の長さより大きい場合は、
注意:文字列の位置は0からカウントされます.
s
文字配列へのポインタ
パラメータnが指定されている場合
(3)、配列の最初のn文字のみを一致させる
さらに
(2)、空文字の末尾をサポートする文字列:検索対象文字の長さは、最初に表示された空文字に依存します.
n
シーケンスに一致する最初の文字が必要です
c
検索された個々の文字
三、戻り値
最初に一致した文字の位置が見つからない場合はstring::nposを返します.
size_tは符号なし整形でstring::size_に等しいtype
例:
// string::find
#include        // std::cout
#include          // std::string

int main ()
{
  std::string str ("There are two needles in this haystack with needles.");
  std::string str2 ("needle");

  //        find  :
 //       "needle"    ----string(1)
  std::size_t found = str.find(str2);
  if (found!=std::string::npos)
    std::cout << "first 'needle' found at: " << found << '
';  // found+1 ,6 "needles are small" 6 "needle" ---buffer(3) found=str.find("needles are small",found+1,6); if (found!=std::string::npos) std::cout << "second 'needle' found at: " << found << '
'; found=str.find("haystack"); if (found!=std::string::npos) std::cout << "'haystack' also found at: " << found << '
'; found=str.find('.'); if (found!=std::string::npos) std::cout << "Period found at: " << found << '
'; // "needle" str.replace(str.find(str2),str2.length(),"preposition"); std::cout << str << '
'; return 0; }

実行結果:
first 'needle' found at: 14
second 'needle' found at: 44
'haystack' also found at: 30
Period found at: 51
There are two prepositions in this haystack with needles.