C 字串操作介面

2021-08-08 15:37:03 字數 2448 閱讀 7697

選用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...