C++如何輸入含空格的字符串


 

1、scanf函數(包含頭文件#include <stdio.h>)

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

例如:

        

2. cin(包含頭文件#include <iostream>)

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

3. gets()

可以無限讀取,以回車結束讀取,C語言中的函數,在C++中運行會產生bug。在C11標准中已被正式刪除,建議不要用!!!

4. getline()(包含頭文件#include <string>)

若定義變量為string類型,注意不是字符型數組。則要考慮getline()函數。用法如下:

        

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

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

    

 

5.cin.getline (char *str, int maxnum)(包含頭文件#include <string>)

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

6. 字符串類型轉換為字符數組

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM