您好,登錄后才能下訂單哦!
字符串:以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()是一個運算符,不是一個函數,它有以下三種用法:
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]);
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。