(转)用scanf获取一行包括空格的字符串

来源:互联网 发布:php博客系统实验报告 编辑:程序博客网 时间:2024/05/16 11:29

转自http://www.rupeng.com/forum/thread-3196-1-1.html

内容:
#include<stdio.h>
int main()
{
      char a[777];
      scanf("%[^/n]",&a);
      printf("%s",a);
      return 0;
}

说明:
在scanf函数中,可以使用%c来读取一个字符,使用%s读取一个字符串,但是只会忽略开始的空格,读到字符串中第一个空格前的非空格字符时结束,因此只能读取一个单词,而不是整行字符串,因此一般使用fgets来读取一个字符串。其实scanf函数也可完成这样的功能,而且还更强大。这里主要介绍一个参数%[ ],这个参数的意义是读入一个字符集合。[ ]是个集合的标志,因此%[ ]特指读入此集合所限定的那些字符,比如%[A-Z]是输入大写字母,一旦遇到不在此集合的字符便停止。如果集合的第一个字符是" ^ ", 这说明读取不在" ^ " 后面集合的字符,既遇到" ^ "后面集合的字符便停止.注意此时读入的字符串是可以含有空格的。

原创粉丝点击