博客專欄

EEPW首頁 > 博客 > C語言的中gets(s)和scanf("%s",s)的區(qū)別

C語言的中gets(s)和scanf("%s",s)的區(qū)別

發(fā)布人:電子禪石 時間:2019-06-01 來源:工程師 發(fā)布文章

二者都是從終端讀入字符串。功能為
1、 gets功能為讀入一行,并將換行符轉換為字符串結束符。
2、 scanf("%s",s);讀入時,遇到空白字符,包括空格,制表符,換行符時均會停止輸入。

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

2 終止后,對終止字符處理不同。
比如輸入為"test\nabcd"。
執(zhí)行gets后,\n不會留在緩沖區(qū)中,即這時調用getchar得到的字符是'a'。
執(zhí)行scanf后,\n會留在緩沖區(qū),這時調用getchar得到的字符是'\n'。

*博客內容為網友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。



關鍵詞:

相關推薦

技術專區(qū)

關閉