C語言學習(三)(字串和格式化輸入輸出)

2021-08-22 19:09:51 字數 1478 閱讀 6518

4.1 

先看一段**;

#include #define praise "you are an extraorinary being."

int main(void)

若是要輸入含有空格的字串我們可以採用控制字元 %[^\n];例如經常需要讀入一行字串,而這串字元裡面可能有空格、製表符等空白字元,如果直接用%s是不可以的,於是有些人就想到用gets(),當然這也是一種選擇,但是懂c的人基本上都知道gets()是乙個很危險的函式,而且很難控制,特別是與scanf()交替使用時前者的劣勢更是一覽無餘,所以gets()一般是不推薦用的,其實用%[^\n]就可以很好的解決這個問題了,^表示"非",即讀入其後面的字元就結束讀入。這樣想讀入一行字串直接用scanf("%[^\n]%*c",str);就可以了,

%*c的作用是讀入\n,否則後面讀入的將一直是\n。

結果為what's your name?張 三

hello, 張 三. you are an extraorinary being.

4.2.1

sizeof()和strlen()都包含在標頭檔案string.h中。

sizeof():以位元組為單位給出物件的大小。(包括空字元)

strlen():給出字串中的字元長度。(不包括空字元)

4.3常量和c預處理器

#define 使用預處理器定義常量

const  用於限定乙個變數為唯讀,即可以使用,但是不可以更改。(const int months =12;)

4.4printf()和scanf()

①printf()的轉換說明修飾符(*)

②列印較長的字串

1.使用多個printf()語句;

2.用反斜槓(\)和enter鍵組合來斷行使游標移至下一行;

3.在兩個用雙引號括起來的字串之間用空白隔開;

例如

printf("here is one way to ");

printf("printf a long string.\n");

printf("here is one way to \

printf a long string.\n");

printf("here is one way to"

" printf a long string.\n");

結果為

here is one way to printf a long string.

here is one way to printf a long string.

here is one way to printf a long string.

4.4.5

使用scanf()

如果用scanf()讀取基本變數的值,在變數名之前加上乙個&;

如果用scanf()把字元讀入字元陣列中,不要使用&;

scanf()函式使用空白(換行符,製表符和空格)把輸入分成多個字段。

(三)字串和格式化IO

1 字串 字串在c 語言中只有常量沒有對應的字串型別,所以在儲存時借助字元陣列儲存,即儲存在一塊連續的空間中。helloworld 計算機在儲存字串時,會在後面自動加 0 1 計算字串長度 呼叫字串函式 strlen include include int main void 結果 len 10,原...

C語言學習 004 字串和格式化輸入 輸出

字串簡介 字串 乙個或多個字元的序列。strlen 函式以字元為單位給出字串的長度。在string.h標頭檔案中 常量和c預處理器 編譯時代入法 define name value 這樣定義的常量被稱為明顯常量。不常用的命名規則 在名字前面加上字首c 或者k 來表示常量。const修飾符 把變數宣告...

C語言基礎 9 字串格式化輸入和輸出

字串是記憶體中一段連續的char 空間,以 0 結尾 putchar輸出乙個char printf是輸出乙個字串 printf格式字元 字元 對應資料型別 含義 d int 接受整數值並將它表示為有符號的十進位制整數 hdshort int 短整數hu unsigned short int 無符號短...