scanf讀取含空格的字串

2021-08-21 11:10:49 字數 831 閱讀 7242

scanf()函式接收輸入資料時,遇以下情況結束乙個資料的輸入:

① 遇空格、「回車」、「跳格」鍵。

② 遇寬度結束。

③ 遇非法輸入。

scanf接收包含空格的字串

#include 

int main()

輸入:i love you!

輸出:i

原因:scanf遇空格結束讀取。

解決:

#include 

int main()

輸入:i love you!

輸出:i love you!

//讀到'\n'結束讀取,存入str,再拋棄乙個字元

scanf("%[^\n]%*c",str);

//讀到'\n'結束讀取,並將其讀到的資料拋棄,然後再拋棄乙個字元(這個字元是'\n')

//此時快取中不存在任何字元

scanf("%*[^\n]%*c");

int c;

while((c=getchar())!='\n'&&c!=eof);

//讀取乙個字元,直到是\n或者是eof停止

//等價於

scanf("*[^\n]");

#include 

int main()

輸入:bcdeaf

輸出:f

翻轉含空格的單詞字串順序(濾掉空格)

輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。為簡單起見,標點符號和普通字母一樣處理。例如輸入字串 i am a student.則輸出 student.a am i 說明 解題思路 1.先用trim 把字串兩端的空格去掉 2.再用split 把字串根據空格分隔為乙個個單詞塊儲存在...

C 如何輸入含空格的字串

c 如何輸入含空格的字串 1 scanf函式 包含標頭檔案 include scanf函式一般格式為scanf s st 但scanf預設回車和空格是輸入不同組之間的間隔和結束符號,所以輸入帶空格,tab或者回車的字串是不可以的。解決方法如下 1 利用格式符 它的作用為掃瞄字元集合。scanf c ...

C 如何輸入含空格的字串

c 如何輸入含空格的字串 1 scanf函式 包含標頭檔案 include scanf函式一般格式為scanf s st 但scanf預設回車和空格是輸入不同組之間的間隔和結束符號,所以輸入帶空格,tab或者回車的字串是不可以的。解決方法如下 1 利用格式符 它的作用為掃瞄字元集合。scanf c ...