basic_string::find_first_of (STL Samples)

Visual C++ で basic_string:: find_first_of の標準テンプレート ライブラリ関数を使用する方法に (STL) ついて説明します。

size_type find_first_of(
   const basic_string& _X,
   size_type iPos = 0
);
size_type find_first_of(
   const element_type *_S,
   size_type iPos,
   size_type cElementsIn_S
);
size_type find_first_of(
   const element_type *_S,
   size_type iPos = 0
);
size_type find_first_of(
   element_type _C,
   size_type iPos = 0
);

解説

[!メモ]

プロトタイプのクラスやパラメーター名はヘッダー ファイルのバージョンと一致しない。ただし読みやすさが向上するように変更されました。

このメンバー関数は残りのオペランドによって各検索するオペランド シーケンスの一致する要素の位置 iPos のまたはの後の被制御シーケンスの先頭 (最低位置の要素) を指定します。成功すると位置を返します。そうしないと関数の戻り値の npos。返される位置は0 (ゼロ) です。npos の 戻り値は要素があることを示す特別な値です。

使用例

// main.cpp
// compile with: /EHsc
//
// Functions:
//
//    string::find_first_of() - find the first instance in the
//         controlled string of any of the elements specified by the
//         parameters. The search begins at an optionally-supplied
//         position in the controlled string.

#include <string>
#include <iostream>

using namespace std ;

int main()
{
    string str1("Heartbeat");
    string str2("abcde");
    size_t iPos = 0;

    cout << "The string to search is '" << str1.c_str() << "'"
         << endl;

    // find the first instance in str1 of any characters in str2
    iPos = str1.find_first_of (str2, 0);  // 0 is default position

    cout << "Element in '" << str2.c_str() << "' found at position "
         << iPos << endl;

    // start looking in the third position...
    iPos = str1.find_first_of (str2, 2);

    cout << "Element in '" << str2.c_str() << "' found at position "
         << iPos << endl;

    // use an array of the element type as the set of elements to
    // search for; look for anything after the fourth position
    char achVowels[] = {'a', 'e', 'i', 'o', 'u'};
    iPos = str1.find_first_of (achVowels, 4, sizeof(achVowels));

    cout << "Element in '";
    for (int i = 0; i < sizeof (achVowels); i++)
        cout << achVowels[i];
    cout << "' found at position " << iPos << endl;

    // use a string literal to specify the set of elements
    char szVowels[] = "aeiou";
    iPos = str1.find_first_of (szVowels, 0);  // 0 is default position

    cout << "Element in '" << szVowels << "' found at position "
         << iPos << endl;

    // look for a specific character beginning in the third position
    iPos = str1.find_first_of ('e', 2);

    cout << "'e' found at position " << iPos << endl;
}

出力

The string to search is 'Heartbeat'
Element in 'abcde' found at position 1
Element in 'abcde' found at position 2
Element in 'aeiou' found at position 6
Element in 'aeiou' found at position 1
'e' found at position 6

必要条件

ヘッダー : <string>

参照

概念

標準テンプレート ライブラリのサンプル