• string中常用的函数


    string中常用的函数

    发现在string在处理这符串是很好用,就找了一篇文章放在这里了..

    用 string来代替char * 数组,使用sort排序算法来排序,用unique 函数来去重
    1、Define
               string s1 = "hello";
               string s2 = "world";
               string s3 = s1 + "," + s2 +"! ";
    2、append
               s1 += ",shanshan ";
    3、Compare
               if(s1 == s2)
                  .....
               else if(s1 == "hello")
                  .....
    4、 string 重载了许多操作符,包括 +, +=, <, =, , [], <<, >>等,正式这些操作符,对字符串操作非常方便

    #include <string>
    #include <iostream>
    using namespace std;
    int main(){
               string strinfo="Please input your name:";
               cout << strinfo ;
               cin >> strinfo;
            if( strinfo == "winter" )
               cout << "you are winter!"<<endl;
            else if( strinfo != "wende" )
               cout << "you are not wende!"<<endl;
            else if( strinfo < "winter")
               cout << "your name should be ahead of winter"<<endl;
            else
               cout << "your name should be after of winter"<<endl;
               strinfo += " , Welcome to China!";
               cout << strinfo<<endl;
               cout <<"Your name is :"<<endl;
               string strtmp = "How are you? " + strinfo;
            for(int i = 0 ; i < strtmp.size(); i ++)
               cout<<strtmp[i];
            return 0;
    }
    5、find函数
    由于查找是使用最为频繁的功能之一,string 提供了非常丰富的查找函数。其列表如下:
    函数名 描述
    find 查找
    rfind 反向查找
    find_first_of 查找包含子串中的任何字符,返回第一个位置
    find_first_not_of 查找不包含子串中的任何字符,返回第一个位置
    find_last_of 查找包含子串中的任何字符,返回最后一个位置
    find_last_not_of 查找不包含子串中的任何字符,返回最后一个位置
    以上函数都是被重载了4次,以下是以find_first_of 函数为例说明他们的参数,其他函数和其参数一样,也就是说总共有24个函数:
    size_type find_first_of(const basic_string& s, size_type pos = 0)
    size_type find_first_of(const charT* s, size_type pos, size_type n)
    size_type find_first_of(const charT* s, size_type pos = 0)
    size_type find_first_of(charT c, size_type pos = 0)

    所有的查找函数都返回一个size_type类型,这个返回值一般都是所找到字符串的位置,如果没有找到,则返回string::npos。
    其实string::npos表示的是-1。即没找到就返回-1。例子如下:
    #include <string>
    #include <iostream>
    using namespace std;
    int main(){
               string strinfo="      //*---Hello Word!......------";
               string strset="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
            int first = strinfo.find_first_of(strset);
            if(first == string::npos) {
                       cout<<"not find any characters"<<endl;
                    return -1;
               }
            int last = strinfo.find_last_of(strset);
            if(last == string::npos) {
                       cout<<"not find any characters"<<endl;
                    return -1;
               }
               cout << strinfo.substr(first, last - first + 1)<<endl;//string.substr是子串
            return 0;
    }
    6、insert函数, replace函数和erase函数

    string只是提供了按照位置和区间的replace函数,而不能用一个string字串来替换指定string中的另一个字串。
    例子:
    #include <string>
    #include <iostream>
    using namespace std;
    int main() {
               string strinfo="This is Winter, Winter is a programmer. Do you know Winter?";
               cout<<"Orign string is : "<<strinfo<<endl;
               string_replace(strinfo, "Winter", "wende");
               cout<<"After replace Winter with wende, the string is : "<<strinfo<<endl;
            return 0;
    }

    string.erase(pos,srclen);//srclen是删除的长度
    string.insert(pos,strdst); //pos是定位,strdst是插入的函数
    void string_replace(string & strBig, const string & strsrc, const string &strdst) {
               string::size_type pos=0;
               string::size_type srclen=strsrc.size();
               string::size_type dstlen=strdst.size();
            while( (pos=strBig.find(strsrc, pos)) != string::npos){
                       strBig.erase(pos, srclen);
                       strBig.insert(pos, strdst);
                       pos += dstlen;
               }
    }
  • 相关阅读:
    上海最适合拍照的旅游地点
    九款优秀的企业项目协作工具推荐
    九款优秀的企业项目协作工具推荐
    就如何快速免费提高网站排名小结
    就如何快速免费提高网站排名小结
    科博会|人工智能时代的到来
    科博会|人工智能时代的到来
    JS数组去重的6种算法实现
    JS数组去重的6种算法实现
    八款前端开发人员更轻松的实用在线工具
  • 原文地址:https://www.cnblogs.com/timssd/p/4160654.html
Copyright © 2020-2023  润新知