2018年03月06日
《その322》 stringクラス(8)
string型文字列の find, rfind による検索
#include <string>
#include <iostream>
using namespace std;
int main() {
//【find, rfind による検索】
string s0("abc123abc123");
string s1("bc12");
char ary[] = "123";
// 先頭から検索。出現位置を返します。
cout << s0.find(s1) << '\n'; // 1
cout << s0.find(ary) << '\n'; // 3
cout << s0.find("123") << '\n'; // 3
cout << s0.find('c') << '\n'; // 2
cout << s0.find('d') << "\n\n"; // npos
// 末尾から検索。出現位置を返します。
cout << s0.rfind(s1) << '\n'; // 7
cout << s0.rfind(ary) << '\n'; // 9
cout << s0.rfind("123") << '\n'; // 9
cout << s0.rfind('c') << '\n'; // 8
cout << s0.rfind('d') << "\n\n"; // npos
// 検索開始位置を指定
cout << s0.find(s1 , 4) << '\n'; // 7
cout << s0.find(ary , 4) << '\n'; // 9
cout << s0.find("123", 4) << '\n'; // 9
cout << s0.find('c' , 4) << "\n\n"; // 8
// s0 の 5文字目から
// "12345"の最初の 3文字を検索
cout << s0.find("123456", 4, 3)
<< "\n\n"; // 9
// 反復子で検索範囲を指定(戻り値は反復子)
cout << boolalpha;
cout << (find(s0.begin(), s0.end(), '2')
== s0.begin() + 4)
<< '\n'; // true
cout << (find(s0.begin(), s0.end(), '2')
== s0.begin() + 5)
<< '\n'; // false
}
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/7399910
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック