[陣列] Char 字元陣列

char,字元
很多字元組合在一起
成為字元陣列
也就是字串
那字元陣列有甚麼特性?

宣告:

跟一般陣列相同
宣告都是同樣格式

(一般陣列)  型態 陣列名稱 [元素數目];

(字元陣列)  char 名稱[元素數目(包括‘�’)];

Ex:

[code language=”cpp”]
#include <iostream>
using namespace std;

int main(){

int str[10]; //一般陣列

char name[10]; //字元陣列
//可以放入9個字元(扣掉’\0’)

}<span style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" data-mce-type="bookmark" class="mce_SELRES_start"></span>
[/code]

 

初始化:

不同於一般陣列
字元陣列可以直接輸入字串作為初始化

(一般陣列)  型態 陣列名稱 [元素數目]={元素1, 元素2, ………};

(字元陣列)  char 名稱[元素數目(包括‘�’)]=”字串內容

Ex:

[code language=”cpp”]
#include <iostream>
using namespace std;

int main(){

int str[5]={1,2,3,4,5}; //一般陣列

char name[10]="Tony0612"; //字元陣列

}<span style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" data-mce-type="bookmark" class="mce_SELRES_start"></span>
[/code]

C++11新增內容:
char 名稱[元素數目(包括’�’)]=”字串內容”;
  • 可以對C-風格的字串進行列表初始化
  • 可以省略”=”

                   (O) char a={“Apple”};
                   (O) char b {“Bird}

  • 可使用空白括弧,將所有元素設為空格
Ex:

[code language=”cpp”]
#include <iostream>
using namespace std;

int main(){

char name1[10]={"Tony0612"}; //列表初始化

char name2[10] {"Janet"}; //可以省略"="

char name3[10]={}; //使用空白括弧,將所有元素設為空格

cout << name1 << endl;
cout << name2 << endl;
cout << name3 << endl;

}
[/code]

 

函數    必須引入 <cstring> 標頭檔
 
  • 取得字串長度

           strlen(陣列位址);
          PS: 陣列位址=陣列名稱

 
  • 拷貝字串
            strcpy(目的陣列位址(陣列名稱),拷貝陣列位址(陣列名稱));
          PS: 陣列位址=陣列名稱
  • 連接字串
            strcat(陣列位址1(陣列名稱1),陣列位址2(陣列名稱2));
          PS: 陣列位址=陣列名稱
Ex:

[code language=”cpp”]
#include <iostream>
#include <cstring> //引入 <cstring> 標頭檔
using namespace std;

int main(){

char name1[10]={"Tony0612"};
char name2[10]={};

cout << strlen(name1) << endl; //印出字串長度

strcpy(name2,name1); //將name1的內容拷貝到nmae2字串

strcat(name1,name2); //連接name1以及name2字串並指定給name1

cout << name1 << endl; //印出name1字串
cout << name2; //印出name2字串

}
[/code]

  • 比較字串

            strcmp(陣列位址1,陣列位址2);

          PS陣列位址=陣列名稱
 
Ex:

[code language=”cpp”]
#include <iostream>
#include <cstring>
using namespace std;

int main(){

char a[10]="Hello";
char b[10]="Bye";
char c[10];
strcpy(c,a); //將a的內容拷貝到b

cout << strcmp(a,b) << endl; //比較a,b內容
cout << strcmp(a,c) <<span style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" data-mce-type="bookmark" class="mce_SELRES_start"></span>< endl; //比較a,c內容

}
[/code]

有疑問? 留個言吧!

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料