string类成员函数的使用方法(三)

15.find
功能:查找字符或字符串
返回值:返回找到的字符或字符串的第一个字符位置

    //找单个字符
    string s1("hello word");
    int iPos1 = s1.find('e', 0);//第二个参数是一个偏移量,指定从哪里开始找
    //注意,返回的数组下标,从0开始计数的
    if (iPos1 != string::npos)
    {
        cout << "e -- " << iPos1 << endl; 
    }
    else
    {
        cout << "没有找到 e "<< endl;
    }

    //找子字符串
    string s2("hello word");
    int iPos2 = s1.find("llo", 0);//第二个参数是一个偏移量,指定从哪里开始找
    if (iPos1 != string::npos)
    {
        cout << "llo -- " << iPos2 << endl;
    }
    else
    {
        cout << "没有找到 llo " << endl;
    }

    //查找字符串的部分字符
    string s3("hello word");
    int iPos3 = s1.find("lle", 0,2);//第三个参数是匹配多少个
    if (iPos3 != string::npos)
    {
        cout << "ll -- " << iPos3 << endl;
    }
    else
    {
        cout << "没有找到 ll " << endl;
    }

    string s4("hello word");
    string s5("hello");
    int iPos4 = s1.find(s5,0);//第二个参数是指定从哪个位置开始找
    if (iPos4 != string::npos)
    {
        cout << "hello -- " << iPos4 << endl;
    }
    else
    {
        cout << "没有找到 hello " << endl;
    }

16.find_first_not_of
功能:查找不符合某些条件的第一次出现的位置

    //找单个字符
    string s1("hello word");
    int iPos1 = s1.find_first_not_of('e', 0);//第二个参数是一个偏移量,指定从哪里开始找
    //注意,返回的数组下标,从0开始计数的
    if (iPos1 != string::npos)
    {
        cout << "e -- " << iPos1 << endl; 
    }
    else
    {
        cout << "全部符合条件 "<< endl;
    }

    //找子字符串
    string s2("hello word");
    int iPos2 = s1.find_first_not_of("he", 0);//第二个参数是一个偏移量,指定从哪里开始找
    if (iPos1 != string::npos)
    {
        cout << "he -- " << iPos2 << endl;
    }
    else
    {
        cout << "全部符合条件 " << endl;
    }

    //查找字符串的部分字符
    string s3("hello word");
    int iPos3 = s1.find_first_not_of("hee", 0,2);//第三个参数是匹配多少个
    if (iPos3 != string::npos)
    {
        cout << "he -- " << iPos3 << endl;
    }
    else
    {
        cout << "全部符合条件" << endl;
    }

    string s4("hello word");
    string s5("hello");
    int iPos4 = s1.find_first_not_of(s5,0);//第二个参数是指定从哪个位置开始找
    if (iPos4 != string::npos)
    {
        cout << "hello -- " << iPos4 << endl;
    }
    else
    {
        cout << "全部符合条件" << endl;
    }

17.front
功能:返回第一个元素的地址

    string s("hello word");
    cout << s.front() << endl;

18.pop_back
功能:删除最后一个元素

    string s("hello word");
    s.pop_back();
    cout << s << endl;

19.push_back
功能:向尾部添加

    string s("hello word");
    s.push_back('A');
    cout << s << endl;

20.rbegin
功能:反向迭代器,返回最后一个元素的迭代器地址,可以从后往前面遍历
相当于最后一个元素就是开始

21.rend
功能:和rbegin相反

22.insert
功能:将一定元素或者一定数量的元素插入到指定位置

    //向指定位置插入字符串
    string s1("hello word");
    s1.insert(0, "hello ");
    cout << s1 << endl;

    //向指定位置插入字符串的指定个数
    string s2("hello word");
    s2.insert(0, "hello ",3);
    cout << s2 << endl;

    //向指定位置插入字符串对象
    string s3("hello word");
    string str1("hello ");
    s3.insert(0, str1);
    cout << s3 << endl;

    //向指定位置插入字符串对象的指定位置开始的n个字符
    string s4("hello word");
    string str2("hello ");
    s4.insert(0, "hello ",1,2);
    cout << s4 << endl;

    //向指定位置插入一定数量的字符
    string s5("hello word");
    s5.insert(0,5,'A');
    cout << s5 << endl;

    //利用迭代在指定位置插入
    string s6("hello word");
    s6.insert(s6.begin()+2,'a');
    cout << s6 << endl;

    //第一个参数是要在哪里插入,后面两个是一对迭代器
    string s7("hello word");
    string str3("hello ");
    s7.insert(s7.begin(),str3.begin(),str3.end());
    cout << s7 << endl;

    string s8("hello word");
    s8.insert(s8.begin(), 5, 'A');
    cout << s8 << endl;

    string s9("hello word");
    const char* p = "hello ";
    s9.insert(s9.begin(),p,p+6);
    cout << s9 << endl;

    string s10("hello word");
    string str4("hello");
    string::const_iterator const_iter_begin = str4.begin();
    string::const_iterator const_iter_end = str4.end();
    s10.insert(s10.begin(), const_iter_begin, const_iter_end);
    cout << s10 << endl;

23.resize
功能:重新设定大小

    string s("hello");
    s.resize(10); //重新设定大小
    cout << s << endl;
    s.resize(20, 'A');//重新设定大小并且赋值
    cout << s << endl;
    s.resize(5);
    cout << s << endl;
    s.resize(3);     //大小减小,后面的字符被删除
    cout << s << endl;

24.rfind
功能:从后面开始查找

25.swap
功能:交换两个字符串对象的内容

    string s1("hello");
    string s2("word");
    s1.swap(s2);
    cout << s1 << endl;
    cout << s2 << endl;

26.substr
功能:截取子字符串

    string s("hello");
    cout << s.substr(2) << endl; //输出为llo
    cout << s.substr(2, 2) << endl;//输出为lo

27.replace
功能:用字符或者字符串替换原来字符串的全部或者部分

    //第二个参数是最多被替换的字符个数
    string s1("hello");
    s1.replace(0, 1, "he");
    cout << s1 << endl;

    //最后一个参数是参数字符串的最大个数
    string s2("hello");
    s2.replace(0, 1, "ABCD",3);
    cout << s2 << endl;

    //最后两个分别是参数串的位置和个数
    string s3("hello");
    s3.replace(0, 1, "ABCDEF",2,4);
    cout << s3 << endl;

    //2个A
    string s4("hello");
    s4.replace(0, 1, 2,'A');
    cout << s4 << endl;

    string s5("hello");
    s5.replace(s5.begin()+2,s5.end() , "AB");
    cout << s5 << endl;

    string s6("hello");
    string str("AB");
    s6.replace(s6.begin() + 2, s6.end(), str);
    cout << s6 << endl;

    //利用一对迭代器替代
    string s7("hello");
    string str1("AB");
    s7.replace(s7.begin(), s7.end(), str1.begin(),str1.end());
    cout << s7 << endl;

你可能感兴趣的:(String,函数,Class)