首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言字元陣列與字串基礎:定義、初始化、輸入輸出、結束標誌

     編輯:關於C語言
 

字元陣列定義

形式同數值陣列:char c[10];。因字元與整數通用,亦可 int c[10](佔 2 位元組)。支援多維,如 char c[5][10];。

初始化

  • 逐字元:char c[10] = {'c',' ','p','r','o','g','r','a','m'};,未賦值元素自動為 0。
  • 省略長度:char c[] = {'c',' ','p','r','o','g','r','a','m'}; 長度自動為 9。

引用方式

同普通陣列,透過下標存取。二維陣列範例:

char a[][5] = {{'B','A','S','I','C'},{'d','B','A','S','E'}};
for(i=0;i<2;i++) for(j=0;j<5;j++) printf("%c", a[i][j]);

字串與結束標誌 \0

C 無專屬字串型別,用字元陣列存放字串,以 \0 結束。初始化可用字串常數:

char c[] = "C program"; // 系統自動在末尾加 \0

記憶體圖示:
字串記憶體佈局

因有 \0,無須指定長度,系統自動處理。

字串輸入輸出

printf 輸出

char c[] = "BASIC\ndBASE";
printf("%s\n", c); // 格式字串 %s,引數給陣列名

scanf 輸入

char st[15];
scanf("%s", st); // 遇空格停止,不含空格

若需含空格字串,可分多陣列讀取:

char st1[6], st2[6], st3[6], st4[6];
scanf("%s%s%s%s", st1, st2, st3, st4);

陣列名即首址

scanf("%s", st) 中 st 為首址,不可寫 &st。陣列名代表首元素位址,&st 為陣列整體位址(類型不同)。

陣列記憶體佈局

常見問題:字元陣列 vs 普通陣列

字元陣列專門存放字元,配合 \0 形成字串,支援字串函數操作;普通陣列存放數值,無結束標誌。詳細比較請見文末專文。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved