1.返回字符串s1在s中的位置,如果没有找到,则返回-1
#include <iostream> #include <string.h> using namespace std; int main() { string s="what are you dong"; string s1="are"; int position; position=s.find(s1); if(position==-1) cout<<"not find"<<endl; else cout<<"position= "<<position<<endl; return 0; }
2.返回任意字符s1在s中第一次出现的位置,s1为字符,不能为字符串 'a' "a"都可以
#include <iostream> #include <string.h> using namespace std; int main() { string s="hahahaha"; string s1="a"; int position; position=s.find_first_of(s1); cout<<position<<endl; return 0; }
3.从字符串s下标为a开始查找字符串s1,返回起始位置 s.find(s1,a); 查找不到返回-1
#include <iostream> #include <string.h> using namespace std; int main() { string s="have a good time"; string s1="good"; int position; position=s.find(s1,3); cout<<position<<endl; position=s.find(s1,12); cout<<position<<endl; return 0; }
4.查找字符s1在s中出现的所有起始位置
#include <iostream> #include <string.h> using namespace std; int main() { string s="abb abb abb"; string s1="a"; //char s1='a'; int position=0; int i=0; while((position=s.find_first_of(s1,position))!=string::npos) { cout<<position<<endl; position++; i++;//i为出现的总次数 } cout<<"total="<<i<<endl; return 0; }
5.查找字符串s1与s第一个不匹配的位置
#include <iostream> #include <string.h> using namespace std; int main() { string s="aaabcd"; string s1="aaafcd"; int position; position=s.find_first_not_of(s1); cout<<position<<endl; return 0; }
6.反向查找,返回s1在s中的位置
#include <iostream> #include <string.h> using namespace std; int main() { string s="aaabcd"; string s1="abc"; int position; position=s.rfind(s1); cout<<position<<endl; return 0; }
参考资料:
http://www.jb51.net/article/37560.htm