\0
,這就是空字符串,C語言用它來標記字符串結束,空字符串不是數字0,他是非打印字符,其ASCII碼是0。#include<stdio.h> #define PARISE "You are an extraordinary being" #pragma warning(disable:4996) int D16_1_praisel(void) { char name[40]; printf("What's your name?"); scanf("%s", name); printf("Hello,%s. %s\n", name, PARISE); return 0; }
運行顯示:
git
\0
注意點:咱們在進行輸入名字的時候是兩個單詞的時候,好比:Lebron James,那麼
scanf()
會讀取空格以前的第一個單詞,不會讀取後面的單詞,也可使用方法fgets()
後面再介紹。github
sizeof
運算符,它以字節爲單給出對象的大小。strlen()
函數給出字符串中的字符長度。由於1字節存儲一個字符兩者結果可能相同,但本質並非一種計算方式。#include<stdio.h> #include<string.h> /*提供strlen()函數的原型*/ #define PRAISE "You are an extraordinaty being." #pragma warning(disable:4996) int D16_2_praise2(void) { char name[40]; printf("What's your name?"); scanf("%s", name); printf("Hello,%s.%s\n", name, PRAISE); printf("Your name of %zd letters occupies %zd memory cells.\n", strlen(name), sizeof(name)); printf("The phrase of praise has %zd letters ", strlen(PRAISE)); printf("and occupise %zd memory cells.\n", sizeof PRAISE); return 0; }
運行顯示:
數組
注意點:
(1)若是使用ANSI C以前的編譯器,必需要移除這一行:#include<string.h>;以前的編譯器使用的是strings.h這個頭文件;
(2)C99和C11標準專門爲sizeof運算符的返回類型特意添加了%zd
轉換說明,對於函數strlen()
也一樣適用。早期的C須要使用實際的返回類型(一般是unsigned或unsigned long)
(3)sizeof後面接括號的問題,若是是變量或者字面量,括號無關緊要;若是是類型則須要括號,這裏推薦都使用括號爲好。微信