首先,问大家个问题:“C中scanf函数能否输入空格?”

可能很多人会白眼:“废话!C只能用gets,fgets函数获得空白符啊!”

确实,在scanf函数中,可以使用 %c 来读取一个字符,使用 %s 读取一个字符串,但是读取字符串时不忽略空格,读字符串时忽略开始的空格,并且读到空格为止,因此只能读取一个单词,而不是整行字串,因此一般使用fgets来读取一个字符串。

之前我负,也这样认为的,其实不然,scanf函数也可以哦。而且还更强大。

下面说一下如何用scanf获得空格等空白符。这里主要介绍一个参数:%[]。这个参数的意义是读入一个字符集合。[]是个集合的标志,因此%[]特指读入此集合所限定的那些字符, 比如 %[A-Z] 是输入大写字母,一旦遇到不在此集合的字符便停止。如果集合的第一个字符是'^', 这说明读取不在'^'后面集合的字符,即遇到'^'后面集合的字符便停止。而此时读入的字符串是可以含有空格的。

#include

int main()

{

char a[20];

scanf("%[^\n]", a);

printf("%s\n", a);

return 0;

}

上面的程序就能输入包括空格在内的字符串。[^\n]表示遇到换行符停止。

PS:其他的scanf函数方面的问题,亲们自己查吧。用了很久的C,现在才知道scanf也能输入空格的,一切都需要自己探索。

共进!

scanf 接收 空格 输入_scanf函数可以输入空白符相关推荐

  1. scanf 接收 空格 输入_【C/C++】【输入】关于scanf:输入空格,多次使用

    一.C/C++中带空格字符串的输入 C++中的cin和C中的scanf都是遇到空格或回车结束. 如果要让scanf接收空格,可以用读入字符集合的方式.%[] char a[100]; scanf(&q ...

  2. scanf 接收 空格 输入_你需要知道的scanf函数用法

    scanf函数   上一节中我们讨论了,如何将整数,浮点数,字符串打印到屏幕上去.既然有输出,怎么能没有输入呢?这一节中,我们来介绍与printf相反的scanf函数.   scanf的功能是将键盘输 ...

  3. scanf 接收 空格 输入_【C语言】- printf 和scanf 函数详解!

    一.printf函数 这是在stdio.h中声明的一个函数,因此使用前必须加入#include <stdio.h>,使用它可以向标准输出设备(比如屏幕)输出数据. 1.用法 1> p ...

  4. scanf 接收 空格 输入_当接受用户输入的含有空格的字符串时,应使用()函数。...

    学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是按分数的高低排列学生的记录,低分在前. 注意:部分源程序给出如下. 请勿改动主函数main和其 ...

  5. scanf 接收 空格 输入_如何允许使用scanf输入空格?

    人们(尤其是初学者)不应该使用scanf("%s")或gets()或任何其他没有缓冲区溢出保护的函数,除非你确定输入总是一个特定的格式甚至不是). 记住,scanf代表" ...

  6. 编写一个函数,该函数能判断一个英文句子str(带空格)中是否含有某个单词w,如“How old are you?”含有“old”。在main函数中输入一个英文句子,再输入一个单词,如果英文句子中含有那

    题目要求: 编写一个C程序,实现以下功能: 编写一个函数,该函数能判断一个英文句子str(带空格(升级版))中是否含有某个单词w,如"How old are you?"含有&quo ...

  7. scanf函数中输入格式及输入基本原理讲解

    前言:(本文所用测试全在vs2019) 本文主要是对 scanf函数输入中所需注意的形式,以及不同的格式下对于scanf函数输入的影响. scanf中基本原理的讲解,理解实现scanf函数的内部逻辑. ...

  8. 【C】编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。

    //编写一个函数,由实参传来一个字符串,统计此字符串中字母.数字.空格和其他字符的个数, //在主函数中输入字符串以及输出上述的结果. #include <stdio.h> #includ ...

  9. python输入正方形面积公式_scanf()函数的调用:编写求正方形面积的通用程序

    #includevoid main(){ int a, area; scanf("%d",&a); //等待用户从键盘输入一个整数// area=a*a; printf(& ...

最新文章

  1. 为什么不让安装卫xing×××啊
  2. java restful项目打包_听说你在接私活? 一个助你效率翻倍的项目工具!!
  3. 几个值得收藏的国外有关Vue.js网站
  4. yolo v3制作自己的数据_小白也能弄懂的目标检测之YOLO系列 第一期
  5. Windows Phone开发(25):启动器与选择器之WebBrowserTask
  6. C++ c_str()
  7. 武汉 net 2011-04-29
  8. 解析微服务架构与最佳实践
  9. mySQL 数据库错误
  10. SASS简介及使用方法
  11. 手机发包工具_【发包工具】http多线程发包工具
  12. github【如何删除一个repository(仓库)】
  13. spring freemarker 获取后端的值
  14. gateway nacos注册服务_第二篇 Spring Cloud Alibaba实战(一)Nacos服务注册与发现
  15. 磁盘工具无法修复磁盘怎么办
  16. ant下载与本地配置
  17. Incremental Graph Convolutional Network for Collaborative Filtering(阅读论文笔记)
  18. 008九九乘法表(详解)
  19. OB52 记账期间变式和公司主数据关联关系
  20. Mybatis在集群环境下脏读问题

热门文章

  1. swift scheme 跳转外部应用
  2. Hive insert overwrite 问题
  3. 推荐一个.Net常用代码集合,助你高效完成业务
  4. 数据库课程设计报告-学生学籍管理信息系统
  5. Emacs之高阶用法global(gtags)+cflow函数调用树(七十八)
  6. linux系统装机后做的优化配置
  7. 2010中Word自动编号,下一行缩进问题
  8. spatialite android,一种基于Android系统的Spatialite空间数据库加密方法与流程
  9. 用js自定义视频播放器
  10. 【NOIP2018模拟赛2018.10.23】木门道伏击战