C string(字串)總結

2021-08-31 13:30:19 字數 1526 閱讀 8060

string是在c++標準模板庫中的資料型別,string型別的物件用來存放字串,且不用擔心字串越界問題,標頭檔案為

string 變數名;

(1)string s1,s2;  //定義物件s1,s2,沒有初始化,

string s3="hello"  //定義物件並初始化

cin>>s1>>s2;   //輸入:abc defg

cout<(2)string物件陣列的定義

string str1=;   //等同於string str1[2]=; 

string str2[3]; //如果不初始化,必須指定string物件陣列的長度;

cin>>str2[0]>>str2[1]>>str2[2];  //輸入: a bc defg

coutstring ch[2]=;

int s_size=s.size(); //或int s_size=s.length(),表示字串s的長度

int ch[0]_size=ch[0].size(); //字串陣列ch[0]的長度

printf("s_size=%d,ch[0]_size=%d",s_size,ch[0]_size);

string 物件之間可以用 <、<=、==、>=、> 運算子進行比較,還可以用+將兩個 string 物件相加、將乙個字串常量和 string 物件相加、將乙個字元陣列和 string 物件相加,相當於進行字串連線。+=運算子也適用於 string 物件。string 物件在比較大小時是按詞典序比較的,而且是大小寫相關的。由於大寫字母的 ascii 碼小於小寫字母的 ascii 碼('a' ~ 'z' 的 ascii 碼是 0x41 ~ 0x5a,'a' ~ 'z' 的 ascii 碼是 0x61 ~ 0x7a),所以 zbc 比 abc 小。此外,string 物件還可以通過運算子和下標訪問字串中的某個字元。例如: 

string s1 = "123", s2 = "abc11", s3;  //s3是空串,s3==""

s3 = sl + s2;  //s3 變成"123abc"

s3 += "de";  //s3 變成"123abcde"

bool b = s1 < s3;  //b 為 true

char c = s1[2];  //c變成'3'(下標從0開始計算)

s1[2] = '5';  //s1 變成」125"

string s="abcd"

string s1=s.substr(1,2); //取字串s從下標1開始,長度為2的子字串,即s1="bc";

string ss="abcd"

char ch[10];

strcpy(ch,ss.c_str());  //c_str()函式把string型別字串轉換為char型別字串,然後複製到char型別字串陣列中;

C string 字串匹配

c inlcude c include find 在乙個字串中查詢乙個指定的單個字元或字元陣列。如果找到,就返回首次匹配的開始位置 如果沒有查詢到匹配的內容,就返回string npos。find first of 在乙個目標串中進行查詢,返回值是第乙個與指定字元組中任何字元匹配的字元位置。如果沒有...

C string 字串函式

december 8,2012 程式設計指南 和 連線字串 字串賦值 和 字串比較 例如a b,aa ab 比較字串 輸出 輸入字串 注意 使用過載的運算子 時,必須保證前兩個運算元至少有乙個為 string 型別。例如,下面的寫法是不合法的 include include intmain stri...

C string 字串刪除指定字元

今天遇到的情況時需要刪除時間戳裡的 只留下數字。想找比較簡單的實現方法,找了半天,發現的方案 用stl的string的 find 和 erase 首先,通過find找到需要刪除的字元 字串的位置 string str string target int pos str.find target 然後通...