㈠ gets在c語言中什麼意思
c語言里gets(a) 表示輸入一個字元串到數組a,a表示讀取一個字元串存入a中,字元串輸入結束標志為換行符。
gets從標准輸入設備讀字元串函數,其可以無限讀取,不會判斷上限,以回車結束讀取,所以程序員應該確保buffer的空間足夠大,以便在執行讀操作時不發生溢出。
(1)c語言中getss語法擴展閱讀:
注意
因為本函數可以無限讀取,易發生溢出。如果溢出,多出來的字元將被寫入到堆棧中,這就覆蓋了堆棧原先的內容,破壞一個或多個不相關變數的值。
這個事實導致gets函數只適用於玩具程序,為了避免這種情況,我們可以用fgets(stdin) (fgets實際上可以讀取標准輸入,即大多數情況下的鍵盤輸入),具體參閱fgets詞條)來替換gets()。在V7的手冊(1979年)中說明:為了向後兼容,gets刪除換行符,gets並不將換行符存入緩沖區。
由於可以無限讀取,所以在2011年12月,ANSI 採納了 ISO/IEC 9899:2011 標准,標准中刪除了 gets()函數,使用一個新的更安全的函數gets_s()替代(具體用法看下面示例)。
㈡ c語言gets()的用法是什麼
在前面從鍵盤輸入字元串是使用 scanf 和 %s。其實還有更簡單的方法,即使用 gets() 函數。該函數的原型為:
# include <stdio.h>
char *gets(char *str);
這個函數很簡單,只有一個參數。參數類型為 char* 型,即 str 可以是一個字元指針變數名,也可以是一個字元數組名。gets() 函數的功能是從輸入緩沖區中讀取一個字元串存儲到字元指針變數 str 所指向的內存空間。
下面將前面中使用 scanf 輸入字元串的程序改一下:
# include <stdio.h>
int main(void)
{
char str[20] = "