scanf和gets獲取字串時的區別

2021-05-25 23:31:04 字數 687 閱讀 8485

在c語言中,能構獲取字串的函式至少有兩個:

1.scanf()

所在標頭檔案:stdio.h

接受字串時:scanf("%s",字元陣列名或指標);

2.gets()

所在標頭檔案:stdio.h

語法:gets(字元陣列名或指標);

兩者在接受字串時:

1.不同點:

scanf不能接受空格、製表符tab、回車等;

而gets能夠接受空格、製表符tab和回車等;

2.相同點:

字串接受結束後自動加'/0'。

例1:#include

main()

char ch1[10],ch2[10];

scanf("%s",ch1);

gets(ch2);

依次鍵入asd空格fg回車,asd空格fg回車,則ch1="asd/0",ch2="asd fg/0"。

例2:#include

main()

char ch1[10],ch2[10],c1,c2;

scanf("%s",ch1);

c1=getchar();

gets(ch2);

c2=getchar();

依次鍵入asdfg回車,asdfg回車,則ch1="asdfg/0",c1='/n',ch2="asdfg/0",c2需輸入。

gets和scanf輸入字串的比較

scanf 函式和gets 函式都可用於輸入字串,但在功能上有區別。若想從鍵盤上輸入字串 hi hello 則應該使用 gets 函式。gets可以接收空格 而scanf遇到空格 回車和tab鍵都會認為輸入結束,所有它不能接收空格。char string 15 gets string 遇到回車認為輸...

scanf和gets在字串中的區別

用scanf不是不顯示空格,而是用scanf接收字串的話,在串首遇到空格的話,跳過,繼續尋找下乙個非空格字元,在串中遇到空格時,結束字串的輸入。所以如果使用者輸入 abcd efg 的話,scanf取得的字串為 abcd 而gets取得字串時,是在遇到eof 串尾 時停止,所以不存在這個問題。inc...

獲取字串

package cn.itcast.day08.demo02 public int length 獲取字串當中含有的字元個數,拿到字串長度。public string concat string str 將當前字串和引數字串拼接成為返回值新的字串。public char charat int ind...