C 如何輸入含空格的字串

2021-08-14 13:23:21 字數 1534 閱讀 8399

c++

如何輸入含空格的字串

1、scanf函式(包含標頭檔案#include )

scanf函式一般格式為scanf(「%s」,st),但scanf預設回車和空格是輸入不同組之間的間隔和結束符號,所以輸入帶空格,tab或者回車的字串是不可以的。解決方法如下: 1)利用格式符「%」它的作用為掃瞄字元集合。scanf(「%[^c]」,str); 其中「c」是乙個具體的字元常量(包括控制字元)。當輸入字串時,字元「c」將被當作當前輸入的結束符。利用此格式符就可以由程式設計者自己指定乙個輸入結束符。例如:scanf("%[a-z a-z0-9]",str)表示只匹配輸入是大小寫字母和數字,遇到非數字和字母時輸入結束。例如:

int main()

2. cin(包含標頭檔案#include )

cin是c++中最常用的輸入語句,當遇到空格或者回車鍵即停止。無法解決

3. gets()

可以無限讀取,以回車結束讀取,c語言中的函式,在c++中執行會產生bug。

c11標準中已被正式刪除,建議不要用!!!

4. getline()(包含標頭檔案#include )

若定義變數為string型別,注意不是字元型陣列

。則要考慮getline()函式。用法如下:

int main()

{ string st;

getline(cin,st);

cout<4.cin.get (char *str, int maxnum)

cin.get()函式可以接收空格,遇回車結束輸入。

int main()

{ char st[50];

cin.get(st,50);

cout<5.cin.getline (char *str, int maxnum)(包含標頭檔案#include )

cin.getline()函式可以同cin.get()函式類似,也可接收空格,遇回車結束輸入。

int main()

{ char st[50];

cin.getline(a,50);

cout<6. 字串型別轉換為字元陣列

(a)c_str()

char p[50];

string str="i love ningbo!";

strcpy(p,str.c_str());

printf("%s",p);

(b)data()

char p[50];

string str="i love ningbo!";

strcpy(p,str.data());

printf("%s",p);

C 如何輸入含空格的字串

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

C 輸出格式控制 輸入含空格的字串

int n printf 010d n 即可。其中10表示寬度,0表示前面添充0。c語言中,可以用gets函式來接收輸入的字串 包含空格 格式 gets 字元陣列名 功能 gets函式用於將輸入的字串內容存放到指定的字元陣列中,輸入結尾的換行符 n 被換成 0 儲存在該陣列中。舉例說明如下 1 2 ...

scanf讀取含空格的字串

scanf 函式接收輸入資料時,遇以下情況結束乙個資料的輸入 遇空格 回車 跳格 鍵。遇寬度結束。遇非法輸入。scanf接收包含空格的字串 include int main 輸入 i love you 輸出 i 原因 scanf遇空格結束讀取。解決 include int main 輸入 i lov...