C++中sting的rfind函式返回值
阿新 • • 發佈:2019-01-26
string中的find函式與rfind函式定義如下:
int find(char c, int pos = 0) const;//從pos開始查詢字元c在當前字串的位置
int find(const char *s, int pos = 0) const;//從pos開始查詢字串s在當前串中的位置int find(const char *s, int pos, int n) const;//從pos開始查詢字串s中前n個字元在當前串中的位置
int find(const string &s, int pos = 0) const;//從pos開始查詢字串s在當前串中的位置
//查詢成功時返回所在位置,失敗返回string::npos的值
int rfind(char c, int pos = npos) const;//從pos開始從後向前查詢字元c在當前串中的位置
int rfind(const char *s, int pos = npos) const;
int rfind(const char *s, int pos, int n = npos) const;
int rfind(const string &s,int pos = npos) const;
在實際的程式實現中,rfind的查詢截止值並不是pos,而是pos+strlen(c)-1。
#include<iostream> using namespace std; int main() { string st = "1111111111"; //10個字元 cout<< st.rfind("1111",9) << endl; //按照定義應返回6,正確 cout<< st.rfind("1111",7) << endl; //按照定義應返回4,實際是6 cout<< st.rfind("1111",5) << endl; //按照定義應返回2,實際是5 cout<< st.rfind("1111",2) << endl; //按照定義應返回-1,實際是2 return 0; }