一、字串、傳統字串、C++字串
1. 字元的宣告:
char 字元名稱 = ‘字元值’; ,如:
char a=’b’;
cout<<a; //顯示b
2. 傳統字串即是由字元所組成的陣列:
char a[]="make a string";
cout<<a; //顯示make a string
二、C++字串的使用
因字串(string)是在std命名空間中,故要在C++中使用,需先在開頭寫下:
using namespace std;
using std::string;
1. 字串的建構與複製:字串的建構有許多種方法如下:
(1) string 字串名稱(n,’某字元’);:此字串之內容為n個某字元。例:
string op(5,'w');
cout<<op<<endl; //顯示 wwwww
(2)string 字串名稱一(字串名稱二);:將字串二複製給字串一。例:
string tt="I visit weiwei";
string op(tt);
cout<<op<<endl; //顯示I visit weiwei
(3) string 字串名稱一(字串名稱二 , n1 , n2);:將字串二下標n1開始,連續n2個字元複製給字串一。例:
string tt="I visit weiwei";
string op(tt, 8,6);
cout<<op<<endl; //顯示weiwei
2. 字串中字元的指定:
(1) 利用下標運算子[]:
string tt="I visit weiwei";
cout<<tt[0]<<endl; //顯示I
cout<<tt[1]<<endl; //顯示空格。空格也算是一個字元。
cout<<tt[2]<<endl; //顯示v
(2) 利用成員函式at(),並在括號中輸入索引值:
string tt="I visit weiwei";
cout<<tt.at(0)<<endl; //顯示I
cout<<tt.at(1)<<endl; //顯示空格
cout<<tt.at(2)<<endl; //顯示v
3. 利用成員函式assign(),將字串宣告後再指派值。括號內的程式碼意義同於建構或複製建構:
string op,tt="I visit weiwei";
op.assign(5,'a');
cout<<op<<endl; //顯示 aaaaa
4. 字串與字串可以用比較運算子==,!=,>=,<=,>,<來進行比較。乃是從雙方的第一個字元之ASCII碼的大小比較起。也可以使用成員函式compare()進行比較:字串一.compare(字串二);,若字串一大於字串二則回傳1,若字串二大於字串一則回傳-1,若兩者相等則回傳0。如下例:
string a="aaa",b="bbb",c="ccc";
cout<<b.compare(c)<<endl; //顯示 -1
cout<<b.compare(a)<<endl; //顯示 1
cout<<b.compare(b)<<endl; //顯示 0
5. 字串的合成與插入:
(1) 利用加法運算子+:
string a="aaa",b="bbb",c="ccc";
a=a+b+"kkk";cout<<a<<endl; //顯示 aaabbbkkk
也可以利用+=運算子來疊加字串:
string a="aaa",b="bbb",c="ccc";
a+="qqq";cout<<a<<endl; //顯示 aaaqqq
(2) 利用成員函式append():(註:append 此一英文單字的意思是”附加”)
(2-1) 字串名稱一.append(字串名稱二);,將字串二附加在字串一的末端。如:
string a="aaa",b="bbb",c="ccc";
a.append(b);
cout<<a<<endl; //顯示aaabbb
(2-2) 字串名稱一.append(字串名稱二 , n1 , n2);,將「字串二從索引n1數起的n2個字元」附加在字串一的末端。如:
string a="aaa",b="bbb",g="gggGGGggg";
a.append(g,1,7);
cout<<a<<endl; //顯示aaaggGGGgg
(2-3) 字串名稱.append(n,’某字元’);,將n個某字元附加在字串一的末端。
3. 利用成員函式insert(),可插入字串:
(3-1) 字串一名稱.insert( n , 字串二名稱);,可將字串二整個插入字串一在索引n的位置。如:
string a="aaaaaa";
string b="ng";
a.insert(2,b);
cout<<a<<endl; //顯示aangaaaa
(3-2) 字串一名稱.insert( n , 字串二名稱 , n1 ,n2);,可將「字串二在索引n1之後的n2個字元」插入字串一在索引n的位置。如:
string a="aaaaaa";
string b="12345678";
a.insert(2,b,2,5);
cout<<a<<endl; //顯示aa34567aaaa
(3-3) 字串一名稱.insert( n , n1 , ‘某字元’);,可將n1個某字元插入字串一在索引n的位置。如:
string a="aaaaaa";
a.insert(3 , 3 ,'g');
cout<<a<<endl; //顯示aaagggaaa
6. 其他常用函式:
字串名稱.size();:回傳字串的字元數目。
字串名稱.length();:回傳字串的字元數目。
字串名稱.empty();:若字串為空,回傳true,否則回傳false。
swap(字串名稱一 , 字串名稱二);:將字串一與字串二的內容對調。
留言列表