1.查找和替换
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> using namespace std; /* 查找和替换 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(const string& 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最后一次出现位置 string& replace(int pos, int n, const string& str); //替换从pos开始n个字符为字符串str string& replace(int pos, int n, const char* s); //替换从pos开始的n个字符为字符串s */ void test01() { string s = "abcdefg"; //查找 int pos = s.find("bcf"); // 查不到返回-1 cout << pos << endl; //-1 int pos2 = s.rfind("bc"); //虽然从后往前查找 返回的还是正常的索引顺序 即rfind和find查找顺序相反 结果相同 cout << pos2 << endl; //1 //替换 string s2 = "hello"; s2.replace(1, 2, "2222"); //string& replace(int pos, int n, const string& str); //替换从pos开始n个字符为字符串str,并非是只取str的n个字符串替换,而是整个str替换原字符串pos后的n个位置的这一段字符串 cout << s2 << endl; //h 2222(被替换的el) lo -> h2222lo } int main() { test01(); system("Pause"); return 0; }
结果: