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