C++ string类的用法总结
- 赋值
s1 = s2;
s1.assign(s2); //将字符串s2赋值给s1,类似于s1=s2
s1.assign(num, c); //将num个字符c组成的字符串赋值给s1
- 插入元素
s2.insert(idx, s1); //将字符串s1插入到idx下标之前
- 取元素
s[idx]; //返回下标idx的字符,不检查下标合法性
s.at[idx]; //返回下标idx的字符,检查下标合法性
- 拼接字符串
s1+s2; //将字符串s1和s2拼接
s1.append(s2); //将字符串s2追加到s1后
s1+c; //将字符串s1和字符c拼接
- 截取子串
s.substr(); //返回s的副本
s.substr(idx); //返回从下标idx开始的子串副本
s.substr(idx, len); //返回从下标idx开始,长度为len的子串副本
- 删除
s.clear(); //删除s的所有字符,无返回值
s.erase(); //删除s的所有字符,返回当前对象
s.erase(idx); //删除s中从idx开始的所有字符,返回当前对象
s.erase(idx, len); //删除s中从idx开始最多len个字符,返回当前对象
- 替换
s.replace(int idx, int len, string s1); //把s中从idx开始的最多len个字符替换为s1
s.replace(iterator beg, iterator end, s1); //把s中位于区间[beg,end]内的子串替换为s1
s.replace(iterator beg, iterator end, iterator newBeg, iterator newEnd); //把s中位于区间[beg, end]内的子串替换为s中区间[newBeg, newEnd]内的子串
- 查找
s.find(c); //在s中查找字符c,查找成功则返回第一次出现的下标
s.find(c, idx); //从下标idx开始查找字符c,查找成功则返回第一次出现的下标
s.find(sub); //在s中查找子串sub,查找成功则返回第一次出现的下标
s.find_first_of(char c); //查找第一个与字符c相同的字符,查找成功则返回第一次出现的下标
s.find_first_of(sub); //查找第一个与sub中某个字符相同的字符,查找成功则返回第一次出现的下标
- 比较
s1 < s2, s1 <= s2, s1 > s2, s1 >= s2, s1 == s2, s1 != s2;
s1.compare(s2); //比较s1,s2,如果相等则返回0;如果s1大于s2,返回正数;如果s1小于s2,返回负数