C++中string字串的基礎操作,學習

zpa666發表於2024-11-10

string 字串

常用函式

  • substring()
  • string.length()&&string.size()
  • string.find()
  • string.replace()
  • string.substr()

string初始化和宣告

#include<bits/stdc++.h>
using namespace std;
	int main(){
        string str1; //空字串
        string str2="hello, world";  //注意中間有空格和‘,’逗號
        //透過str2賦值給str3
        string str3=str2; 
        //初始化重複的字母
        stirng str4(5,'C'); // str4="CCCCC"
        return 0;       
    }

獲取字串的長度

string.length()&&string.size()

#include<bits/stdc++.h>
using namespace std;
	int main(){
       string str1="hello,, world";
        int len=str1.length();
        int len1=str1.size();
        cout<<len<<len1; //輸出13 包括2個逗號和一個空格
        return 0;       
    }

length()size()返回的是無符號整數(0,1,2...) 使用時儘量用 (int)str1.length()進行強轉

字串查詢

string.find()

#include<bits/stdc++.h>
using namespace std;
	int main(){
       string str1="hello,, world";
       int x=str1.find(" world"); //用int 替代 size_t (無符合整數)
	   cout<<x; //輸出7 空格的下標是7
       int y=str1.find(" 2world");
       cout<<y;//輸出的-1;
             
    }

找到相應的子串會返回子串中第一個char在字串中的下標,如果沒有找到會返回 -1

字串拼接

+ || append()

#include<bits/stdc++.h>
using namespace std;
	int main(){
       string str1="hello";
       string str2="world"
       string str3(5,'Z');
       // 用+進行拼接
       string re1=str1+str2+str3;
       cout<<re1; //輸出helloworldZZZZZ
       //用append()
       string re2=str1.append(str2).append(str3).append("!");
       cout<<re2; //輸出helloworldZZZZZ!
    }

**+ 拼接時可用char拼接,但在append()中的引數只能是string型別,不能是char **

string re1=str1+str2+str3+'!'+"2313";
cout<<re1;//輸出helloworldZZZZZ!2313
string re2=str1.append(str2).append(str3).append('!');//append('!')會報錯

字串替換

string.replace()

#include<bits/stdc++.h>
using namespace std;
	int main(){
       string str1="hello,, world";
       str1.replace(7,3,"333444");//7代表從下標為7的元素開始‘ ’,3代表要替換的長度(” wo“)
       cout<<str1;//輸出 hello,,333444rld
    }

提取子字串

substr()

#include<bits/stdc++.h>
using namespace std;
	int main(){
       string str1="hello,, world";
       string re1=str1.substr(2,4); //2表示從下標2開始,4表示提取子字串的長度;
       cout<<re1;//輸出 llo,
    }

字串比較

compare()

#include<bits/stdc++.h>
using namespace std;
	int main(){
       string str1="hello,,world";
       string str2="heooll";
       int in=str1.compare(str2); // 比較到下標為2時,'l'<'o' 所以返回-1
       cout<<in;//輸出-1 str1比str2小
       
       // 用<,>,== 來比較字串大小
       int re1=str1<str2;
       int re2=str1==str2;
       int re3=str1>str2;
       cout<<re1<<re2<<re3;//輸出 1 0 0
        
    }

字串的比較不是越長就越大,比較時會從第一個元素進行一一對應的比較,如果有不相同的元素就會馬上得出結果;

re=str1.compare(str2)

  • re==0 字串相等
  • re<0 str1較小
  • re>0 str2較大

用 <,>,== 比較 re=str1<str2

  • re=1 str1小於str2
  • re=0 str1不小於str2

相關文章