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

 

posted @ 2020-06-10 00:40  禅主  阅读(1028)  评论(0编辑  收藏  举报