字串使用所包含在的標頭檔案
#include #include //不帶.h,,帶.h是c語言中的
using namespace std;
(1)使用預設建構函式宣告乙個字串變數: string str,作用宣告乙個空字串,未進行初始化作用。
注意區別:
string s=null,是表示未申請任何記憶體資源,宣告了乙個引用變數並初始化引用,但是該引用沒有指向任何物件.但可以把它作為引數傳遞或其它使用,但是不能呼叫它作為物件的方法。
string s="";表示申請了記憶體資源,但資源空間值為空。該語句表示宣告並引用到乙個物件,只不過這個物件為0個位元組.所以既然有了物件,就可以呼叫物件的方法。
string s = string.empty 與 string s=""; 是完全相同的
(2)string類字串初始化。
一般初始化使用建構函式,建構函式的形式有所不同,因此初始化形式也有所不同,具體如下
建構函式
string s; //生成乙個空字串s
string s(num,c) //生成乙個字串,包含num個c字元
string s(c) //將c字串作為s的初值
string s(chars,chars_len) //將c字串前chars_len個字元作為字串s的初值。
string s(str,stridx) //將字串str內"始於位置stridx"的部分當作字串的初值
拷貝建構函式
string s(str); //生成str的複製品
* 在此補充 一下,析構函式及其作用是銷毀所有字元,釋放記憶體。
s.~string() //銷毀所有字元,釋放記憶體
(1)字串的大小和容量
s.size()或者s.length() //字串長度
s.empty() //判斷字串是否為空
(2)比較函式
c ++字串支援常見的比較操作符(>,>=,<,<=,==,!=)。 在使用》,>=,<,<=這些操作符的時候是根據"當前字元特性"將字元按字典順序進行逐一得比較。字典排序靠前的字元小,比較的順序是從前向後比較,遇到不相等的字元就按這個位置上的兩個字元的比較結果確定兩個字串的大小。
常見的比較函式compare().
其返回乙個整數來表示比較結果, 返回值意義如下:0-相等 >0-大於 <0-小於。
如下:
string s("abcd");
s.compare("abcd"); //返回0
s.compare("dcba"); //返回乙個小於0的值
s.compare("ab"); //返回大於0的值
s.compare(s); //相等
s.compare(0,2,s,2,2); //用"ab"和"cd"進行比較 小於零
s.compare(1,2,"bcx",2); //用"bc"和"bc"比較。
(3)賦值函式assign()
s.assign(str); //
s.assign("gaint"); //
s.assign(str,1,3);//如果str是"iamangel" 就是把"ama"賦給字串
s.assign(str,2,string::npos);//把字串str從索引值2開始到結尾賦給s
s.assign("nico",5);//把』n』 『i』 『c』 『o』 『\0』賦給字串
s.assign(5,'x』);//把五個x賦給字串
(4)插入函式 insert()
//插入的不是單個字元時
s.insert(0,」my name」);
s.insert(1,str);
//插入的是單個字元
insert(2,1,'j')
string str;
//直接追加乙個str2的字串
//後面追加str3第6個字元開始的3個字串
//追加字串形參的前5個字元
//直接新增
//新增10個'.'
//新增str3迭代器範圍的字串
//最後這個比較特殊,意思是新增5個'a',實際上引數裡面的65對應的asc碼就是65
//字串追加也可以用過載運算子實現
str+="lalala";
(6)替換函式replace()
/第9個字元以及後面的4個字元被str2代替
str.replace(9,5,str2); // "this is an example string." (1)
//第19個字串以及後面的5個字元用str的第7個字元以及後面的5個字元代替
str.replace(19,6,str3,7,6); // "this is an example phrase." (2)
//第8個字元以及後面的9個字元用字串引數代替
str.replace(8,10,"just a"); // "this is just a phrase." (3)
//第8個字元以及後面的5個字元用字串引數的前7個字元替換
str.replace(8,6,"a shorty",7); // "this is a short phrase." (4)
//第22以及後面的0個字元用3個嘆號替換
str.replace(22,1,3,'!'); // "this is a short phrase!!!" (5)
(7)提取字串 substr()
s.substr(); // 返回s的全部內容
s.substr(11); // 從索引11往後的子串
s.substr(5,6); // 從索引5開始6個字元
(8)刪除字串 erase()
//直接指定刪除的字串位置第十個後面的8個字元
str.erase (10,8);
//刪除迭代器範圍的字元
str.erase (str.begin()+5, str.end()-9);
還有… C string字串類具體用法
c 大大增強了對字串的支援,除了可以使用c風格的字串,還可以使用內建的 string 類。string 類處理起字串來會方便很多,完全可以代替c語言中的字元陣列或字串指標。string 是 c 中常用的乙個類,它非常重要,我們有必要在此單獨講解一下。使用 string 類需要包含標頭檔案,下面的例子...
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...