字符串輸入總結

gets():遇到換行字符(/n,回車)認爲輸入結束,換行符之前(不包括換行符)的所有字符讀入,在這些字符後添加一個空字符(/0)。它將讀取換行符並將其丟棄。

這裏若定義的數組比輸入的數據的長度小,這些輸入的數據會覆蓋內存的別的地方。

爲了避免這個問題,引入了fgets()函數,可以指定字符長度。(下篇文章有fgets內容)。

scanf()函數:用%s格式讀取。

scanf()和gets()主要的差別在於它們如何決定字符串何時結束。scanf()更基於獲取單詞而不是獲取字符串,而gets()函數,會讀取所有的字符,直到遇到第一個換行符爲止。

scanf()使用兩種方法決定輸入結束。無論哪種方法,字符串都是以遇到的第一個非空白字符開始。如果使用%s格式,字符串讀到(但不包括)下一個空白字符格式(比如空格、製表符或換行符)。如果指定了字段寬度,比如%10s,scanf()就會讀入10個字符或直接遇到第一個空白字符。

發佈了50 篇原創文章 · 獲贊 1 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章