字符串:以0結束的字符數組。
數組
注意這裏的0是數字0而不是字符0,其ASCII碼值爲48ide
char s[5] = {'A', 'B', 'C', 'D', 'E'};//字符數組函數
char s[5] = {'A', 'B', 'C', 'D', '0'};//字符數組spa
char s[5] = {'A', 'B', 'C', 'D', 0};//字符串設計
char s[5] = "ABCD"; //字符串,與上一行徹底等價orm
字符串常量是""所括起來的,其最後必定存在一個看不見的\0做爲結束標誌ci
對於字符串的處理,必須遇\0就止字符串
char s[6] = "abcdef";//語法錯誤,存儲長度超過數組的長度string
char s[] = "abcd0123\0XYZ\0\0";it
printf("%d %d\n", sizeof(s), strlen(s));
上述的輸出結果:sizeof(s)是15,strlen(s)是8
由上可知,字符串遇到\0就截止了,其後長度未被計算進去
總結:
sizeof()的用法
sizeof()是一個運算符,不是一個函數,它有如下三種用法:
sizeof(數據類型名稱),測的結果是數據類型所佔的字節數
2.sizeof(變量名稱或者數組名稱),測得結果是變量或者數組所申請的空間
char a; sizeof(a)==>1
short a; sizeof(a)==>2
int a[20]; sizeof(a)==>80
3.sizeof(字符串名稱),測得結果是字符串的長度+1(所加的一字節就是結束表示\0)
strlen()的用法:
strlen()是專門測量字符串長度的函數,使用前須要在函數前加上
#include<string.h>這個頭函數,它測得結果不包括\0這個字符串長度
字符串程序設計實例:
從鍵盤輸入一串字符,要求逐字符逐行輸出,例如:輸入abcd,則輸出爲
a
b
c
d
程序:
char shit[80];
int i;
scanf("%s", shit);//%s使用時,對應爲數組的數組名字,不用加取地址符號&
//這種作法輸入時候不能有空格,遇到空格即輸入結束
for(i = 0; shit[i];i++)//數組的最後一個字符爲0
printf("%c\n", shit[i]);