1. 程式人生 > >C++中sting的rfind函式返回值

C++中sting的rfind函式返回值

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;	
}