C++ String的常见操作

  • 如何任意排序String
  • String删除操作任意字符

任意排序

排序我们可以用标准库给我们提供好的算法,或者也可以自己写排序函数,我们主要用到std::sort(),因为string类本身并没有提供排序算法。

#include <iostream>
#include <array>
#include <algorithm>
#include <string>

struct {
    bool operator()(const string a, const string b)
    {
        return a.length() > b.length();
    }
}comparefun;  //给定一个函数对象,重载()

namespace std
{//重载标准库<,sort()会自动调用<
    bool operator<(const string a, const string b)
    {
        return a.length()>b.length();
    }
}
int main(int argc, const char * argv[]) {
    // 使用自定义排序函数
    array<string, 5> a = {"11111","1111","11","1","111"};
    sort(a.begin(), a.end(), comparefun);
    {sort(a.begin(), a.end());}    //重载标准库<,这个就要注意了
    for (auto x : a) {
        cout<<x<<" ";
    }
    cout<<endl;
return 0;
}

String删除操作任意字符

string提供了find()和erase()函数。删除一个字符串里的所有的空格:

    string str("abc defg 12345");
    while (str.find(' ') != string::npos) {
        str.erase(find(str.begin(), str.end(), '  '));
    }
    cout<<str<<endl;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容