c++ string類型的定義及方法


1.c++ 有兩種風格的字符串形式
  c風格字符串
  定義及初始化
  char a[]={'h','e','l','l','o','\0'}
  或者
  char a[]="hello"; //C++ 編譯器會在初始化數組時,自動把 '\0' 放在字符串的末尾

  輸出:cout<<a;
             或者
             for(int i=0;i<strlen(a);i++)
                 cout<<a[i]

  長度:strlrn(a);

  string類型
  定義及初始化:
  string a="hello";
 
  輸出:cout<<a;

            或者
             for(int i=0;i<strlen(a);i++)
                 cout<<a[i](或者a.at(i) )
 
  長度:a.size();

2.string類型的字符串運算和函數

 在以字符數組存放字符串時,字符串的運算要用字符串函數,如strcat(連接)、strcmp(比較)、strcpy(復制),而對string類對象,可以不用這些函數,而直接用簡單的運算符。

這是因為模板庫中重載了例如 + 、+= 、= 的運算符。

    1).字符串復制用賦值號
         string1=string2;
         其作用與“strcpy(string1,string2);”相同。

    2).字符串連接用加號
         string string1=″C++″; //定義string1並賦初值
         string string2=″Language″;//定義string2並賦初值
         string1=string1 + string2;//連接string1和string2
         連接后string1為″C++ Language″。

    3)字符串比較直接用關系運算符
       可以直接用 ==(等於)、>(大於)、<(小於)、!=(不等於)、>=(大於或等於)、<=(小於或等於)等關系運算符來進行字符串的比較。
       使用這些運算符比使用5.5.5節中介紹的字符串函數直觀而方便

    4)獲取字符串的第一個字符   獲取字符串的最后一個字符

     string::const_iterator it = str1.begin();
     cout << *it << endl;
     cout << endl;
     
     it = str1.end();//end是指向最后一個字符后面的元素,而且不能輸出,所以cout << *it << endl;這樣輸出會報錯
     it--;
    cout << *it << endl;
    cout << endl;

    5)倒置串

    reserve(str.begin(),str.end());

    6)查找串

    //find-從指定位置起向后查找,直到串尾
     string st1("babbabab");
     cout << st1.find('a') << endl;       //1       默認從位置0(即第1個字符)開始查找
     cout << st1.find('a', 2) << endl;   //4       在st1中,從位置2(b,包括位置2)開始,查找a,返回首次匹配的位置
     string st2("aabcbcabcbabcc");
     str1 = "abc";
     cout << st2.find(str1, 2) << endl;//6     從st2的位置2(b)開始匹配,返回第一次成功匹配時匹配的串(abc)的首字符在st2中的位置,失敗返回-1

    7)截取字符串

    str.substr(startpos,length); //從str的startpos位置截取length長度的字符串

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM