要想使用標準c++中string類,必須要包含#include // 注意是,不是或cstring,帶.h的是c語言中的標頭檔案using std::string;using std::wstring;或using namespace std;
string類是不可變(final)的,對string類的任何改變,都是返回乙個新的string類物件.這樣的話把string類的引用傳遞給乙個方法,該方法對string的任何改變,對原引用指向的
物件沒有任何影響,這一點和基本
資料型別
相似.1
2
3
4
strings1,s2;
s1=
"abc"
;
s2=s1;
s2=
"def"
;
//這樣操作之後s1是"abc",s2是"def".
1
2
3
4
5
6
stringa=
"hello,world!"
;
stringb=
"hello,world!"
;
stringc=
"hello!"
;
stringa=
"hello,world!"
;
stringb=
"hello,world!"
;
stringc=
"hello!"
;
a 和 b 是不是指向同乙個位址呢,這個問題在各論壇都是談論很激烈,其實很簡單,跟下這些字串的記憶體位址就好了
1
stringa=
"hello,world!"
;
12
00000042moveax,dwordptrds:[02a62208h]
00000048movdwordptr[ebp-44h],eax
1stringb=
"hello,world!"
;
12
0000004bmoveax,dwordptrds:[02a62208h]
00000051movdwordptr[ebp-48h],eax
1stringc=
"hello!"
;
12
00000054moveax,dwordptrds:[02a756f8h]
0000005amovdwordptr[ebp-4ch],eax
a的位址指向02a62208h,b的位址也是02a62208h,這說明了什麼,建立b的時候
.net機制肯定是先去查詢記憶體中是否有這個字串的記憶體位址,如果有則指向,沒有才建立
#include #include #include using namespace std;
int main()
{ string str;
cin >> str;
// int t=strlen(str);
cout《注意這個例子,說明string字串無法再使用c字串函式了。
constructors
建構函式,用於字串初始化
operators
操作符,用於字串比較和賦值
在字串的末尾新增文字
assign()
為字串賦新值
at()
按給定索引值返回字元
begin()
返回乙個迭代器,指向第乙個字元
c_str()
將字串以c字元陣列的形式返回
capacity()
返回重新分配空間前的字元容量
compare()
比較兩個字串
copy()
將內容複製為乙個字元陣列
data()
返回內容的字元陣列形式
empty()
如果字串為空,返回真
end()
返回乙個迭代器,指向字串的末尾。(最後乙個字元的下乙個位置)
erase()
刪除字元
find()
在字串中查詢字元
find_first_of()
查詢第乙個與value中的某值相等的字元
find_first_not_of()
查詢第乙個與value中的所有值都不相等的字元
find_last_of()
查詢最後乙個與value中的某值相等的字元
find_last_not_of()
查詢最後乙個與value中的所有值都不相等的字元
get_allocator()
返回配置器
insert()
插入字元
length()
返回字串的長度
max_size()
返回字元的最大可能個數
rbegin()
返回乙個逆向迭代器,指向最後乙個字元
rend()
返回乙個逆向迭代器,指向第乙個元素的前乙個位置
replace()
替換字元
reserve()
保留一定容量以容納字串(設定capacity值)
resize()
重新設定字串的大小
rfind()
查詢最後乙個與value相等的字元(逆向查詢)
size()
返回字串中字元的數量
substr()
返回某個子字串
swap()
交換兩個字串的內容
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(字串)總結
string是在c 標準模板庫中的資料型別,string型別的物件用來存放字串,且不用擔心字串越界問題,標頭檔案為 string 變數名 1 string s1,s2 定義物件s1,s2,沒有初始化,string s3 hello 定義物件並初始化 cin s1 s2 輸入 abc defg cou...