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 無符號短...