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