字符數組和字符串介紹

字符串:以0結束的字符數組。

注意這裏的0是數字0而不是字符0,其ASCII碼值爲48

char s[5] = {'A', 'B', 'C', 'D', 'E'};//字符數組

char s[5] = {'A', 'B', 'C', 'D', '0'};//字符數組

char s[5] = {'A', 'B', 'C', 'D', 0};//字符串

char s[5] = "ABCD";   //字符串,與上一行完全等價

字符串常量是""所括起來的,其最後一定存在一個看不見的\0作爲結束標誌

對於字符串的處理,必須遇\0就止

char s[6] = "abcdef";//語法錯誤,存儲長度超過數組的長度

char s[] = "abcd0123\0XYZ\0\0";

printf("%d %d\n", sizeof(s), strlen(s));

上述的輸出結果:sizeof(s)是15,strlen(s)是8

由上可知,字符串遇到\0就截止了,其後長度未被計算進去

總結:

sizeof()的用法

sizeof()是一個運算符,不是一個函數,它有以下三種用法:

  1. 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]);

       

    





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章