1 字元串string與字元數組char[ ]的異同
1.1 了解字元char與字元串的差別
- a char類型不是C++的基本資料類型,實質上是8位的整數類型,在計算機儲存的是它的AS II碼,而不是字元本身,使用時
系統再将其轉換過來;
- b 掌握基本的一些轉義符;
- c 字元串是字元組成的串(非集合,可重複)。
- d 字元用單引号标注,字元串用雙引号标注
- e 字元是一個元素,且隻能存放單個字元,而字元串可以存放多個,并以'\0'結束('\0',空,串的結束符,一個轉義符);
1.2 字元串string與字元數組char[ ]的差別
- 都是字元的集合,但是字元數組不需要以'\0'結束;
- string的使用需要頭檔案string,即#include<string>
- 在頭檔案string.h 中,有關于string對象的一些操作(對象的一些操作方式),比字元數組操作更為友善
- string的size操作結果的變量是string::size_type類型(非int 類型,是int類型的能夠存儲的長度的兩倍)
- 從字元串string對象中擷取字元的操作與char[ ]的操作一樣
代碼示例
#include<iostream>
#include<string>
using namespace std;
//using std::string;
int main() {
char char1='a';
cout<<char1<<" size "<<sizeof( char1)<<endl;
string s1; //定義
string s2("Hello world!");
string s3 = "We are happy!\0"; //不會顯示\0
//string s4 = (4,'c');
string s5= "We are happy!";
cout<<"The size of s1 is "<<s1.size()<<endl;
cout<<s2<<'\n'<<s3<<endl;
cout<<s3<<' '<<s3.size()<<'\n'<<s5<<' '<<s5.size()<<endl;
///char[] char_str1; //有誤
char char_str2[11]; //定義中必須要指明存儲大小
for ( int i = 0; i <= 10; i++ ) {
char_str2[i]=s2[i];
}//通過循環給字元數組初始化
cout<<"The size of "<<char_str2 <<" is " << sizeof(char_str2)<<endl;
//有誤
char char_str3[] = "hello world";
char char_str4[] = "I am so full!\0";
string s6(char_str3); //通過字元數組給字元串指派
//s6=s6(char_str3); //行不通
cout<<s6<<" is "<<s6.size()<<endl;
//char_str4 = s3; //将字元串指派給字元數組
cout<<char_str4<<" is "<<sizeof(char_str4)<<endl;
//通過輸入流給字元串指派,遇到空格結束
cin>>s1;
cout<<s1<<endl;
return 0;
}
運作結果:
2 字元指針可以多次指派
char * char_str1[ ];
char_str=" we are so happy and so disappionted!";
cout<<char_str<<endl;
char_str=char_str2;
cout<<char_str<<endl;