请教怎么用c语言从控制台(stdin) 读入一行字符(含空格 数字)到字符数组

请问如何用c语言从控制台(stdin) 读入一行字符(含空格 数字)到字符数组?
请问如何用c语言从控制台(stdin)   读入一行字符(含空格   数字)到字符数组?

------解决方案--------------------
ft!
上面说错了,应该就是用gets来的。

你用scanf(“%s”,array)这个,遇到空格就表示结束了。

gets( array );----这个可以输入空格,回车结束。。
------解决方案--------------------
方法 1
使用
char buf[80]={0};
gets(buf); //可以读取空格, 回车结束输入
------解决方案--------------------
scanf中一种很少见但很有用的转换字符:[...]和[ ^...]。
#include <stdio.h>
main()
{
char strings[100];
scanf( "%[1234567890] ",strings);
printf( "%s ",strings);
return 0;
}
运行,输入:1234werew后,结果是:1234。
通过运行可以发现它的作用是:如果输入的字符属于方括号内字符串中某个字符,那么就提取该字符;如果

一经发现不属于就结束提取。该方法会自动加上一个字符串结束符到已经提取的字符后面。
scanf( "%[^1234567890] ",strings); 它的作用是:如果一经发现输入的字符属于方括号内字符串中某个字符

,那么就结束提取;如果不属于就提取该字符。该方法会自动加上一个字符串结束符到已经提取的字符后面


注意:方括号两边不能空格,如:scanf( "%[ 1234567890 ] ",strings); scanf( "%[ ^1234567890

] ",strings); 不让空格也会算在里面的。
用这种方法还可以解决scanf的输入中不能有空格的问题。只要用
scanf( "%[^\n] ",strings); 就可以了。