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);