c++ string的詳細用法(9)find()與rfind()

string a="123456789abcdefgab";
string b="789abc";

如果找不到則返回的值爲string::npos
/*
if(a.find('k')==string::npos)
{
     cout<<"沒有找到"<<endl;
}
*/

#1.在字符串中查找某一個字符
##(1).從字符串開始位置開始查找
   auto s=a.find('a'); //結果爲 s=9; 
   //表明a在字符串中從左向右第一次出現的位置的下標爲9

##(2).從字符串某一個位置開始查找
   auto s=a.find('a',11); //結果爲 s=16
   //從字符串下標爲11的地方開始查找字符

#2.在字符串中查找某一個子串
##(1).從字符串開始位置開始查找
   auto s=a.find("9a");//結果爲 s=8; 
   //表明9a子串的第一個字符在字符串中從左向右第一次出現的位置下標爲8
   auto s=a.find(b); //結果爲 s=6;
   
 ##(2).從字符串某一個位置開始查找
   auto s=a.find("ab",11); //結果爲 s=16
   //從字符下標爲11的地方開始向後查找

#3.在字符串中查找子串的前n個字符
 auto s=a.find("abcd",11,2); //結果爲 s=16;
 //解釋:在字符串a中查找,子串"abcd"的前2個字符即在字符串a中查找"ab"
 //注意 在這個重載函數中,第一個參數只能是char* 類型,而不能是string類型

#4.find()rfind()的區別
find()是字符串從前向後查找,rfind()是字符串從後向前查找,其他的用法與find()函數類似

發佈了20 篇原創文章 · 獲贊 118 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章