[C++]String::find
2702 ワード
一、定義
string (1)
c-string (2)
buffer (3)
character (4)
二、パラメータ
str
検索する文字列
pos
検索文字列の数番目の文字から検索を開始
検索文字列の長さより大きい場合は、
注意:文字列の位置は0からカウントされます.
s
文字配列へのポインタ
パラメータnが指定されている場合
(3)、配列の最初のn文字のみを一致させる
さらに
(2)、空文字の末尾をサポートする文字列:検索対象文字の長さは、最初に表示された空文字に依存します.
n
シーケンスに一致する最初の文字が必要です
c
検索された個々の文字
三、戻り値
最初に一致した文字の位置が見つからない場合はstring::nposを返します.
size_tは符号なし整形でstring::size_に等しいtype
例:
実行結果:
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.