string是在c++標準模板庫中的資料型別,string型別的物件用來存放字串,且不用擔心字串越界問題,標頭檔案為
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 物件在比較大小時是按詞典序比較的,而且是大小寫相關的。由於大寫字母的 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 然後通...