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>