C語言中,printf函式對整型,浮點型,字元型使用不同佔位符(%d, %f, %c, %s)輸出的研究
阿新 • • 發佈:2022-04-05
C語言中,printf函式對整型,浮點型,字元型使用不同佔位符(%d, %f, %c, %s)輸出的研究
目錄注意:
定義的型別與輸出的型別要對應。
1.1 佔位符
格式說明由“%”和格式字元組成,如%d%f等。它的作用是將輸出的資料轉換為指定的格式輸出。格式說明總是由“%”字元開始的。
格式字元有d,o,x,u,c,s,f,e,g等。如%d整型輸出,%ld長整型輸出,%o以八進位制數形式輸出整數,%x以十六進位制數形式輸出整數,或輸出字串的地址。%u以十進位制數輸出unsigned型資料(無符號數)。注意:%d與%u有無符號的數值範圍,也就是極限的值,不然數值打印出來會有誤。%c用來輸出一個字元,%s用來輸出一個字串,%f用來輸出實數,以小數形式輸出,預設情況下保留小數點6位。%.100f用來輸出實數,保留小數點100位。%e以指數形式輸出實數,%g根據大小自動選f格式或e格式,且不輸出無意義的零。
1.2 字元型用%d列印和整型用%c列印
打印出對應ASCII碼值。
例子:
void test05() {
char ch1 = 'a';
int a = 65;
double b = 1.3;
printf("ch1 = %c\n", ch1);
printf("ch1 = %d\n", ch1);
printf("a = %d\n", a);
printf("a = %c\n", a);
}
結果:
ch1 = a
ch1 = 97
a = 65
a = A
1.3 整型(%d)與浮點型(%f)
不能混用。
例子:
//test %d, %f void test06() { int a = 65; double b = 1.3; printf("a = %d\n", a); printf("a = %.2f\n", a); printf("b = %.2f\n", b); printf("b = %d\n", b); }
結果:
a = 65
a = 0.00
b = 1.30
b = -858993459
1.4字元(%c)與字串(%s)
(1)字元(%c)形式列印字串
列印字元printf語句輸入的是值,列印字串,輸入的是地址。用%s的形式列印字元會報錯
例子:
//test %c, %s void test07() { char ch1 = 'w'; char str2[3] = "go"; printf("ch1 = %c\n", ch1); printf("str2[0] = %c\n", str2[0]); printf("ch1 = %s\n", &ch1); printf("str2 = %s\n", str2); }
結果:
ch1 = w
str2[0] = g
ch1 = w燙燙<
肄瘥?
str2 = go
(2)列印字串(%s)
注意事項:
①遇到'\0'結束
②對於沒有’\0’的字元陣列,當實際賦值的長度小於定義的長度時,列印實際的長度;當實際賦值的長度等於定義的長度時,列印亂碼。
③對於沒有填滿的字元陣列,列印陣列的長度
例子:
//test printf with %s
void test04() {
char str1[3] = "we";
char str2[2] = {'g', '0'};
char str3[4] = {'w', 'e'};
printf("str1 = %s\n", str1);
printf("str2 = %s\n", str2);
printf("str3 = %s\n", str3);
}
結果:
str1 = we
str2 = g0燙燙燙燙燙we
str3 = we