1. 程式人生 > >C語言字串讀入函式筆記

C語言字串讀入函式筆記

gets(str)函式和scanf("%s",str)區別:

  轉自:https://zhidao.baidu.com/question/290403568.html

 

二者都是從終端讀入字串。

功能為:
  1、 gets功能為讀入一行,並將換行符轉換為字串結束符。
  2、 scanf("%s",s);讀入時,遇到空白字元,包括空格,製表符,換行符時均會停止輸入。



從功能上可以看出不同之處:
  1、 終止條件不同。gets只有遇到\n時才會結束輸入,而scanf遇到空格或製表符時,也會結束輸入。比如輸入"test string\n"。
    用gets得到的字串為"test string", 二用scanf得到的是"test"。

  2、 終止後,對終止字元處理不同。比如輸入為"test\nabcd"。
    執行gets後,\n不會留在緩衝區中

,即這時呼叫getchar得到的字元是'a'。
    執行scanf後,\n會留在緩衝區,這時呼叫getchar得到的字元是'\n'。