C中帶空格(或其他特殊符號)的字符串的輸入


C輸入使用scanf函數,但scanf默認回車和空格是輸入不同組之間的間隔和結束符號,所以輸入帶空格,tab或者回車的字符串是不可以的,

解決方法如下 :
1)利用格式符  “%[]”  它的作用為掃描字符集合。

    scanf(“%[^c]”,str);

其中“c”是一個具體的字符常量(包括控制字符)。當輸入字符串時,字符“c”將被當作當前輸入的結束符。利用此格式符就可以由編程者自己指定一個輸入結束符。
例如:

1 void main() 
2 { 
3     char* msg = NULL;
4     msg = (char *)malloc(100 * sizeof(char));
5     scanf("%[^\n]", msg);      // \n作為字符串輸入的結束符
6     printf("%s", msg);
7     return 0;
8 } 

(2)使用gets函數,gets函數是以回車作為結束符。

舉例:

1     char str[40]; 
2     gets(str);

 


免責聲明!

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



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