c++ string類中的字串查詢
類string提供了大量查詢功能和搜尋功能,其中比較常用的查詢和搜尋函式是find()函式、
find_first_not_of()函式、find_first_of()函式、find_last_not_of()函式、find_last_of()函式、rfind()等。
find()函式的語法如下所示:
(1) size_type find(e c, size_type pos = npos) const;用來查詢單個字元在字串中出現的位置並返回
該位置基於0的索引值。
(2) size_type find(const e *s, size_type pos = npos) const;用來查詢以空字元結尾的字元陣列在
字串中出現的位置並返回該位置基於0索引值。
(3) size_type find(const e *s, size_type pos, size_type n = npos) const;用來查詢以空字元結尾的
字元陣列在字串中出現的位置並返回該位置基於0索引值,它是從npos開始查詢的。
(4) size_type find(const basic_string &str, size_type pos = npos) const;用來查詢字串並且返回
該搜尋的字串的基於0索引值的位置值,它是從npos開始查詢的。
find()函式的功能是從std::string物件的頭部順序找目標值,如果找到返回該目標值出現的位置,如果沒有在
字串物件中找到目標物件,返回值為-1。
rfind()函式的語法如下所示:
(1) size_type rfind(e c, size_type pos = npos) const;用來反向查詢單個字元在字串中出現的位置
並返回該位置基於0的索引值。
(2) size_type rfind(const e *s, size_type pos = npos) const;用來反向查詢以空字元結尾的字元陣列
在字串中出現的位置並返回該位置基於0索引值。
(3) size_type rfind(const e *s, size_type pos, size_type n = npos) const;用來反向查詢以空字元
結尾的字元陣列在字串中出現的位置並返回該位置基於0索引值,它是從npos開始查詢的。
(4) size_type rfind(const basic_string &str, size_type pos = npos) const;用來反向查詢字串並且
返回出現該搜尋的字串的基於0索引值的位置值,它是從npos開始查詢的。
rfind()函式的功能是從std::sring物件的尾部反向查詢目標值,如果找到返回該目標值出現的位置,如果沒有
在字串物件中找到目標物件,返回值為-1。
find_first_not_of()函式的常見語法如下所示:
size_type find_first_not_of(e c, size_type pos = 0) const;
size_type find_first_not_of(const e *s, size_type pos = 0) const;
size_type find_first_not_of(const e *s, size_type pos, size_type n) const;
size_type find_first_not_of(const basic_string &str, size_type pos = 0) const;
該函式的功能是在string物件中查詢物件,如果在string出現了完全不匹配的字元,字串或以空字元結尾的
字元陣列時,系統顯示第一次出現這種情形的位置。如果定義了pos,從pos開始搜尋。
find_first_of()函式的常見語法如下所示:
size_t find_first_of( const string& str, size_t pos = 0 ) const;
size_t find_first_of( const char* s, size_t pos, size_t n ) const;
size_t find_first_of( const char* s, size_t pos = 0 ) const;
size_t find_first_of( char c, size_t pos = 0 ) const;
該函式的功能是在string物件中查詢物件,如果在string出現了任意完全匹配的字元,字串或以空字元結尾
的字元陣列時,系統顯示第一次出現這種情形的位置。如果定義了pos,從pos開始搜尋。只要在string物件中出現了
匹配物件,立即返回位置。
find_last_not_of()函式的常見語法如下所示:
size_t find_last_not_of( const string& str, size_t pos = npos ) const;
size_t find_last_not_of( const char* s, size_t pos, size_t n ) const;
size_t find_last_not_of( const char* s, size_t pos = npos ) const;
size_t find_last_not_of( char c, size_t pos = npos ) const;
該函式的功能是在string物件中反向查詢物件,如果在string出現了任意完全不匹配的字元,字串或以空
字元結尾的字元陣列時,系統顯示第一次完全不匹配時出現的位置。如果定義了pos,從pos反向開始搜尋。只要
在string物件中出現了完全不匹配的物件,立即返回位置值。
find_last_of()函式的常見語法如下所示:
size_t find_last_of( const string& str, size_t pos = npos ) const;
size_t find_last_of( const char* s, size_t pos, size_t n ) const;
size_t find_last_of( const char* s, size_t pos = npos ) const;
size_t find_last_of( char c, size_t pos = npos ) const;
該函式的共是在string物件中反向查詢物件,如果在string出現了任意完全匹配的字元,字串或以空字元結
尾的字元陣列時,系統顯示第一次出現這種情形的位置。如果定義了pos,從pos開始反向搜尋。只要在string物件
中出現了匹配的物件,則立即返回位置值。
字串查詢例項find_first_of()
[cpp]view plain
copy
#include
#include
using
namespace
std;
intmain(
intargc,
char
*argv)
; ipos = str1.find_first_of(achvowels, 4, sizeof
(achvowels));
cout << "element in '"
; for
(int
i = 0; i <
sizeof
(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);
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;
return
0;
}
執行結果為:
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
c string類字串查詢
1 find 函式 find 函式用於在 string 字串中查詢子字串出現的位置,它其中的兩種原型為 size t find const string str,size t pos 0 const size t find const char s,size t pos 0 const 第乙個引數為...
CString字串查詢和擷取
該函式從左側0索引開始,查詢第乙個出現的字元位置 cstring str abc int postion str.find a 如果查到,返回以0索引起始的位置 未查到,返回 1。給定一字串,然後查詢其中出現的第乙個字元位置 cstring str abc int position str.find...
CString字串查詢和擷取
1 find 該函式從左側0索引開始,查詢第乙個出現的字元位置,返回position。示例如下 cstring s abcdef assert s.find b 1 int f s.find de 結果 f 3 返回值 如果查到,返回以0索引起始的位置 未查到,返回 1 2 findoneof 給定...