C語言的中g(shù)ets(s)和scanf("%s",s)的區(qū)別
二者都是從終端讀入字符串。功能為
1、 gets功能為讀入一行,并將換行符轉(zhuǎn)換為字符串結(jié)束符。
2、 scanf("%s",s);讀入時,遇到空白字符,包括空格,制表符,換行符時均會停止輸入。
從功能上可以看出不同之處:
1 終止條件不同。gets只有遇到\n時才會結(jié)束輸入,而scanf遇到空格或制表符時,也會結(jié)束輸入。
比如輸入"test string\n"。
用gets得到的字符串為"test string", 二用scanf得到的是"test"。
2 終止后,對終止字符處理不同。
比如輸入為"test\nabcd"。
執(zhí)行g(shù)ets后,\n不會留在緩沖區(qū)中,即這時調(diào)用getchar得到的字符是'a'。
執(zhí)行scanf后,\n會留在緩沖區(qū),這時調(diào)用getchar得到的字符是'\n'。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。