字串就是乙個或多個字元的序列。雙引號不是字串的一部分,它們只是通知編譯器其中包含了乙個字串。
c沒有為字串定義專門的變數型別,而是把它儲存在char陣列中。
字串中的字元存放在相鄰的儲存單元中,每個字元占用乙個單元;而陣列由相鄰儲存單元組成,所以把字串儲存到陣列中是很自然的。
c用空字元\0來標記字串的結束,空字元不是數字0;它是非列印字元,其ascii碼的值為(或者等同於)0。c的字串儲存時通常以這個空字元結束。該字元的存在意味著陣列的單元數必須至少比要儲存的字元數多1。
字元陣列由記憶體中相鄰的位元組組成。字串,無論是表達成乙個字元常量還是儲存在乙個字元陣列中,都要以乙個被稱為空字元的隱藏字元來結束。
陣列就是同一型別的資料元素的有序序列。
scanf()開始讀取輸入以後,會在遇到的第乙個空白字元空格、製表符或者換行符處停止讀取。一般情況下,使用%s的scanf()只會把乙個單詞而不是把整個語句作為字串讀入。c使用其他讀取輸入函式(例如gets())來處理一般的字串。
sizeof運算子以位元組為單位給出資料的大小,strlen()函式以字元為單位給出字串的長度。
建立符號常量的三種方法:
1.使用預處理器#define定義常量;
2.使用const關鍵字把乙個變數宣告轉換成常量宣告;
3.列舉。
printf()和scanf()函式使您能夠與程式通訊。它們被稱為輸入/輸出函式,或者被簡稱為i/o函式。
c函式一般都有乙個返回值。這就是由函式計算並返回給呼叫程式的值。
printf()返回乙個int值,表示被列印的字元數。printf()的返回值是其列印輸出用途的附帶功能,通常很少被用到。
scanf()函式返回成功讀入的專案的個數。
跟printf()一樣,scanf()使用控制字串和引數列表。控制字串指出輸入將被轉換成的格式。主要的區別是在引數列表中,printf()函式使用變數名、常量和表示式,而scanf()函式使用指向變數的指標。
●如果使用scanf()來讀取某種基本變數型別的值,請在變數名之前加上乙個&。
●如果使用scanf()把乙個字串讀進乙個字元陣列中,請不要使用&。
printf()和scanf()都可以使用*修飾符來修飾說明符的意義,但它們的方式不同。
printf()中,如果轉換說明符是%*d,那麼引數列表中應該包括乙個*的值和乙個d的值。該技術也可以和浮點值一起使
用來指定精度和字段寬度。
在scanf()中,*提供截然不同的服務。當把它放在%和說明符字母時,它使函式跳過相應的輸入專案。
字串和格式化輸入 輸出
字串簡介 字串 乙個或多個字元的序列 雙引號不是字串的一部分,只是通知編輯器其中包含了乙個字串。char 陣列型別和空字元 字串的字元存放在相鄰的儲存單元中,每個字元占用乙個單元 陣列中的最後乙個位置顯示字元 0,就是空字元,用來表示字串的結束 空字元不是數字0,是非列印字元,其 ascii 碼值為...
字串和格式化輸入輸出,小結
字串是一些列被視為乙個處理單元的字元。在c語言中,字串是以空字元 ascii碼是0 結尾的一系列字元。可以把字串儲存在字元陣列中。陣列是一系列同型別的項或元素。在下面宣告了乙個名為name 有30個char型別元素的陣列 char name 30 要確保有足夠多的元素來儲存整個字串 包括空字元 字串...
C語言 字串和格式化輸入 輸出
今天,學習了c primer plus的第四章。本章講解了一些簡單的c預處理器的知識,一些字元 字串以及陣列等相關概念以及輸入輸出函式的使用。現將知識點總結如下 練習 假設乙個程式的開頭是這樣 define book war and peace int main void float cost 12...