C語言輸入帶空格的字符串

用scanf("%s",array); 的話遇到空格就停止接收後面的字符了,那怎麼才能接收帶空格的字符串呢?

1.用 gets() ,它可以接收帶空格的字符串, 直到回車才結束輸入

char buf[80]={0}; 
gets(buf);   //可以讀取空格, 回車結束輸入

2.使用"%[^\n]" 也是可以接收輸入一個帶空格的字符串,直到回車結束接收

char buf[10] = {0};

scanf("%[^\n]",buf); //可以讀取空格,回車結束輸入

注意:scanf_s("%s",buf,10); 不能接收帶空格的字符串輸入,雖然它的指定長度是10, 但是遇到空格時即使沒有滿10個字符它也自動結束輸入了。

 

[xxx],%[abc]表示字符組合包括a、b和c,如果遇到這三個字符之外的字符,則停止接收。%[^abc]代表字符組合爲abc以外的所有字符,至於橫槓是否用於指定某個範圍的字符%[a-z],則因編譯器而異。

發佈了50 篇原創文章 · 獲贊 27 · 訪問量 32萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章