C string類中的字串查詢

2021-07-30 23:16:54 字數 4514 閱讀 6516

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 給定...