選用c++標準程式庫中的string類,是因為他和c-string比較起來,不必擔心記憶體是否足夠、字串長度等等,而且作為乙個類出現,他整合的操作函式足以完成我們大多數情況下(甚至是100%)的需要。我們可以用 = 進行賦值操作,== 進行比較,+ 做串聯(是不是很簡單?)。
首先,為了在我們的程式中使用string型別,我們必須包含標頭檔案 。如下:
#include < string >
//注意這裡不是string.h string.h是c字串標頭檔案
1.定義和構造初始化(參考百科,自己動手體會用法)
宣告乙個字串變數很簡單:
string str;
這樣我們就宣告了乙個字串變數,但既然是乙個類,就有建構函式和析構函式。上面的宣告沒有傳入引數,所以就直接使用了string的預設的建構函式,這個函式所作的就是把str初始化為乙個空字串。string類的建構函式和析構函式如下:
a) string s; //生成乙個空字串s
b) string s(str) //拷貝建構函式 生成str的複製品
c) string s(str,stridx) //將字串str內「始於位置stridx」的部分當作字串的初值
d) string s(str,stridx,strlen) //將字串str內「始於stridx且長度頂多strlen」的部分作為字串的初值
e) string s(cstr) //將c字串作為s的初值
f) string s(chars,chars_len) //將c字串前chars_len個字元作為字串s的初值。
g) string s(num,c) //生成乙個字串,包含num個c字元
h) string s(beg,end) //以區間beg;end(不包含end)內的字元作為字串s的初值
i) s.~string() //銷毀所有字元,釋放記憶體
測試如下:
# include
# include
using
namespace
std;
int main()
; string str5 = ch_music; // = roly-poly
string str6 (ch_music); // = roly-poly
string str7 (ch_music,4); // = roly
string str8 (10,'i'); // = iiiiiiii
string str9 (ch_music+5, ch_music+9); // = poly
str9.~string();
//coutreturn
0;}
2.字串操作函式
這裡是c++字串的重點
1) =,assign() //賦以新值
「=」的用法不作詳細說明,assign用法如下:
# include
# include
using
namespace
std;
int main()
2) swap() //交換兩個字串的內容
用法如下:
# include
# include
using
namespace
std;
int main()
# include # include using namespace std;
int main()
{ string str = "when i was young, i listen to radio.";
string::size_type position;
position = str.find("listen");
if (position != str.npos) //npos是個很大的數,如果沒找到就會返回npos的值給position
{cout<<"第一次出現的下標是:"
position = str.find("you",9);
cout<<"str.find("you",9")is:"position = 0;
int i = 1;
while((position = str.find_first_of(substr,position)) != string::npos)
{cout<<"position "position = str.rfind(flag);
cout<<"
str.rfind(flag):"<
21)begin() end() //提供類似stl的迭代器支援
22) rbegin() rend() //逆向迭代器
23)resize(size) //重設元素個數
c 字串操作
獲得漢字的區位碼 bytearray newbyte 2 求字串長度 求字串長度 int len string inputstring 檢測含有中文字串的實際長度 str為要檢測的字串 asciiencoding n new asciiencoding byte b n.getbytes str i...
C 字串操作
1.根據單個分隔字元用split擷取 例如複製 如下 string st gt123 1 string sarray st.split 即可得到sarray 0 gt123 sarray 1 1 2.利用多個字元來分隔字串 例如複製 如下 string str gtazb jiangjben 123...
C字串操作
c字串操作 注 文中的幾個大小寫不敏感比較函式,原文用的是stricmp等,後來發現linux的std庫沒有,改為strcasecmp系列。函式名 strcpy 功 能 拷貝乙個字串到另乙個字串 用 法 char strcpy char destin,char source 程式例 i nclude...