STL_string容器 (2)

string &append(int n, char c); //在当前字符串结尾添加n个字符c

string s = "abcd"; string s2 = "1111"; s += "abcd"; s += s2; cout << s << endl; string s3 = "2222"; s2.append(s3); cout << s2 << endl; string s4 = s2 + s3; cout << s4 << endl; /* 结果: abcdabcd1111 11112222 111122222222 */ 九、string的比较

int compare(const string &s) const; //与字符串s比较

int compare(const char *s) const; //与字符串s比较

compare函数在>时返回 1,<时返回 -1,==时返回 0。比较区分大小写,比较时参考字典顺序,排越前面的越小。大写的A比小写的a小。

string s1 = "abcd"; string s2 = "abce"; if (s1.compare(s2)==0) { cout << "字符串相等!" << endl; } else { cout << "字符串不相等!" << endl; } 十、string的子串

string substr(int pos=0, int n=npos) const; //返回由pos开始的n个字符组成的子字符串

string s = "abcdefg"; string mysubstr = s.substr(1, 3); cout << mysubstr << endl; /* 结果: bcd */ 十一、string的查找和替换 查找

int find(char c,int pos=0) const; //从pos开始查找字符c在当前字符串的位置

int find(const char *s, int pos=0) const; //从pos开始查找字符串s在当前字符串的位置

int find(const string &s, int pos=0) const; //从pos开始查找字符串s在当前字符串中的位置

//find函数如果查找不到,就返回-1

int rfind(char c, int pos=npos) const; //从pos开始从后向前查找字符c在当前字符串中的位置

int rfind(const char *s, int pos=npos) const;

int rfind(const string &s, int pos=npos) const;

//rfind是反向查找的意思,如果查找不到, 返回-1

替换

string &replace(int pos, int n, const char *s);//删除从pos开始的n个字符,然后在pos处插入串s

string &replace(int pos, int n, const string &s); //删除从pos开始的n个字符,然后在pos处插入串s

void swap(string &s2); //交换当前字符串与s2的值

// 字符串的查找和替换 string s1 = "wbm hello wbm 111 wbm 222 wbm 333"; size_t index = s1.find("wbm", 0); cout << "index: " << index; //求itcast出现的次数 size_t offindex = s1.find("wbm", 0); while (offindex != string::npos){ cout << "在下标index: " << offindex << "找到wbm\n"; offindex = offindex + 1; offindex = s1.find("wbm", offindex); } //替换 string s2 = "wbm hello wbm 111 wbm 222 wbm 333"; s2.replace(0, 3, "wbm"); cout << s2 << endl; //求itcast出现的次数 offindex = s2.find("wbm", 0); while (offindex != string::npos){ cout << "在下标index: " << offindex << "找到wbm\n"; s2.replace(offindex, 3, "WBM"); offindex = offindex + 1; offindex = s1.find("wbm", offindex); } cout << "替换以后的s2:" << s2 << endl; /* 结果: index: 0在下标index: 0找到wbm 在下标index: 10找到wbm 在下标index: 18找到wbm 在下标index: 26找到wbm wbm hello wbm 111 wbm 222 wbm 333 在下标index: 0找到wbm 在下标index: 10找到wbm 在下标index: 18找到wbm 在下标index: 26找到wbm 替换以后的s2:WBM hello WBM 111 WBM 222 WBM 333 */ 十二、String的区间删除和插入

string &insert(int pos, const char *s);

string &insert(int pos, const string &s);//在pos位置插入字符串s

string &insert(int pos, int n, char c); //在pos位置 插入n个字符c

string &erase(int pos=0, int n=npos); //删除pos开始的n个字符,返回修改后的字符串

string s = "abcdefg"; s.insert(3, "111"); cout << s << endl; s.erase(0, 2); cout << s << endl; /* 结果: abc111defg c111defg */

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywxzs.html