c++ string find(), rfind(), find_first_of(),find_last_of()
阿新 • • 發佈:2020-07-13
find(), rfind()
函式原型:
int find(const string& str, int pos = 0) const; //查詢str第一次出現位置,從pos開始查詢 int find(const char* s, int pos = 0) const; //查詢s第一次出現位置,從pos開始查詢 int find(const char* s, int pos, int n) const; //從pos位置查詢s的前n個字元第一次位置 int find(const char c, int pos = 0) const; //查詢字元c第一次出現位置 int rfind(conststring& str, int pos = npos) const; //查詢str最後一次位置,從pos開始查詢 int rfind(const char* s, int pos = npos) const; //查詢s最後一次出現位置,從pos開始查詢 int rfind(const char* s, int pos, int n) const; //從pos查詢s的前n個字元最後一次位置 int rfind(const char c, int pos = 0) const; //查詢字元c最後一次出現位置
find_first_of(),
- 用法:str.find_first_of(str1,pos)
- 說明:從pos位置開始查詢str1,從前往後,只要查到str1中的任何一個字元有則返回其在str中的索引值
find_last_of()
- 用法:str.find_last_of(str1,pos)
- 說明:從pos位置開始查詢,從後往前,查到str1中的任何一個字元則返回其str中的索引值
例題:leetcode 345題:反轉字串中的母音字母
輸入:hello
返回:holle
class Solution { public: string reverseVowels(string s) { int left=0,right=s.size()-1;while(left<right) { left=s.find_first_of("aeiouAEIOU",left); right=s.find_last_of("aeiouAEIOU",right); if(left<right) { swap(s[left++],s[right--]); } } return s; } };