c语言中gets函数可以输入空格吗_C语言 gets()和scanf()函数的区别

2023-11-11

scanf( )函数和gets( )函数都可用于输入字符串,但在功能上有区别。若想从键盘上输入字符串"hi hello",则应该使用 gets 函数。

gets可以接收空格;而scanf遇到空格、回车和Tab键都会认为输入结束,所有它不能接收空格。

char string[15]; gets(string); /*遇到回车认为输入结束*/

scanf("%s",string); /*遇到空格认为输入结束*/

所以在输入的字符串中包含空格时,应该使用gets输入。

scanf和gets获取字符串时的区别

在C语言中,能构获取字符串的函数至少有两个:

1.scanf()

所在头文件:stdio.h

语法:scanf("格式控制字符串",变量地址列表);

接受字符串时:scanf("%s",字符数组名或指针);

2.gets()

所在头文件:stdio.h

语法:gets(字符数组名或指针);

两者在接受字符串时:

1.不同点:

scanf不能接受空格、制表符Tab、回车等;对末尾回车符的处理:把回车符保留在缓存中。

而gets能够接受空格、制表符Tab和回车等;对末尾回车符的处理:接收回车,但把回车替换为\0.

2.相同点:

字符串接受结束后自动加'\0'。

例1:

#include

main()

{

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c语言中gets函数可以输入空格吗_C语言 gets()和scanf()函数的区别 的相关文章

  • Solidworks渲染技巧如何不显示边线--显示样式设定

    如上图是带边线的显示 如果要出ps效果图 这样的边线存在会让效果图显得难看 因为默认是选定了带边线上色的显示样式 只要改成 上色 第二种的显示样式 即可不会带边线 另外如果想得到纯白色的背景色 选择应用布景选单白色 快速选择渲染颜色的技巧
  • protobuf安装教程

    protobuf安装 一 Windows下安装 下载protobuf 配置环境变量 检查是否安装成功 二 Linux下安装 下载protobuf 安装protobuf 检查是否安装成功 一 Windows下安装 下载protobuf 下载地
  • 在浏览器加载完毕后,自动播放视频:出现play() failed because the user didn't interact with the document first.错误

    问题 test html 30 Uncaught in promise DOMException play failed because the user didn t interact with the document first ht
  • 查看nginx版本号的几种方法

    1 查看服务器上安装的nginx版本号 主要是通过nginx的 v或 V选项 查看方法如下图所示 v 显示 nginx 的版本 V 显示 nginx 的版本 编译器版本和配置参数 root zq nginx V nginx version
  • 欧拉角、四元数、旋转矩阵推导及相互关系

    Tags SLAM 一 旋转与旋转矩阵 1 2D旋转 2 3D旋转 二 欧拉角 三 四元数 四 相互转换 1 四元数转旋转矩阵 2 旋转矩阵转四元数 3 欧拉角转旋转矩阵 4 旋转矩阵转欧拉角 5 欧拉角转四元素 6 四元数转欧拉角 五 参
  • Python循环语句(while)(for)经典简单练习题

    求100以内所有偶数的和 sum 0 定义求和的数从0开始 for i in range 0 101 2 利用for循环语句定义i在0到100之间 由左 闭右开的原则 i可以取到0 但是取不到101 故i在0到100之间 再定义每两 个数之
  • vue3学习心得

    关注公众号可获得更多干货 一 vue3是如何变快的 1 diff 算法 Vue2中的虚拟DOM是进行全量对比 Vue3新增了静态标记 PatchFlag 说明 与上次虚拟节点对比 只对比带有静态标记的节点 并且通过flag的信息能得知当前要
  • android学习之基于百度地图的地点检索和标记

    在现在的生活之中 地图越来越重要 作为一个普通的程序员 我们不可能自己去编写一个地图 所以 这篇文章写的是关于如何利用百度的第三方框架来写自己的程序 首先我们需要成为百度开发者 然后下载相关的SDK 在百度里面搜索百度地图 然后进入百度ap
  • 头疼的IE6 js 的 语法错误。

    一提交表单就出问题了 调试也没有用 始终显示461行 的语法错误 怀疑IE6做的真弱智了 后来解决问题了 具体原因 ie6中submit click 方式提交form不成功 但是在高版本的ie中提交没有问题 让我非常的费解 后来查询资料后发
  • Ubuntu18.04+RTX2080Ti+cuda10+tensorflow1.12(解决了tensorflow.python.framework.errors问题)

    基本是按照这篇 Ubuntu18 04 RTX2080 cuda10 tensorflow安装的 链接 https blog csdn net weixin 40859436 article details 83152249 但是出现了一些
  • 从UE4到UE5:新特性的限制

    Nanite 原理 划分culster 按层级进行三角形的culling和lod selection HLOD 基于compute shader 和N卡的mesh shader同目的不同路 纯软件和硬件路线 开启 导入时勾选build na
  • nacos+宝塔 微服务线上和本地相互调用

    使用场景 比如本地有多个微服务 但部分微服务已经不需要改动了 每次调试都要起一大堆的服务 麻烦不说 还卡的要死 所以可以把一些微服务直接放到云服务器上 比如现在我有个Oauth2的认证服务器需要放到云服务器上 实现步骤 1修改配置 spri
  • Linux ubuntu18.04使用ubuntu-drivers autoinstall安装nvidia驱动后紫屏黑屏卡在主板logo无法进系统

    ubuntu 18 04 GTX 1080TI 双显卡 主要是显卡驱动的问题 解决过程 仅供参考 备份文件 重装ubuntu 18 04 再安装驱动 390 138 搞定 ubuntu drivers devices sudo add ap
  • MyISAM和InnoDB存储引擎的区别

    目录 前言 存储引擎 区别 事务 外键 表单的存储 数据查询效率 数据更新效率 如何选择 前言 MyISAM和InnoDB是使用MySQL最常用的两种存储引擎 在5 5版本之前默认采用MyISAM存储引擎 从5 5开始采用InnoDB存储引
  • googletest入门

    googletest入门 1 Windows上编译生成gtest lib静态库 1 1 首先在github上下载Googletest1 8 0版本 https github com google googletest releases ta
  • CentOS7 xfs分区挂载、取消挂载新加硬盘(大于2TB)操作说明

    root xdmail s fdisk l 查看硬盘及分区表信息 磁盘 dev sdb 18000 0 GB 17999997173760 字节 35156244480 个扇区 Units 扇区 of 1 512 512 bytes 扇区大
  • 【C语言】三子棋游戏详解

    目录 一 三子棋的游戏规则 二 基本流程 三 实现步骤 3 1打印菜单 3 2 创建并初始化棋盘 3 3 打印棋盘 3 4 玩家落子 3 5 电脑落子 3 6 判断输赢 四 游戏演示 五 完整代码 一 三子棋的游戏规则 三子棋也就是经常玩的
  • 天猫精灵-土味情话

    1 你猜我想喝什么 不知道啊 我想呵护你 2 你为什么要害我呀 害你什么了 害我喜欢你呀 3
  • qt把ui文件加入到类中

    有一个ui界面 需要建立 cpp和 h文件 ui的名字是Ui Form 代码如下 h文件 pragma once include ui add1 h class Form1 public QWidget Q OBJECT public Fo

随机推荐

  • 以法律的名义捍卫自由软件的权益之二 —— 软件自由法律中心(SFLC)的来龙去脉...

    更多精彩推荐 请关注开源之道 Thu Apr 24 2020 7347 Words 大约需要阅读 2 分钟 作者 开源之道 在介绍完成以法律的名义捍卫自由软件的权益之一 软件自由保护组织 SFC 的来龙去脉 笔者觉得有点不足的地方 尽管基本
  • 使用docker和docker-compose搭建Vulhub漏洞测试靶场

    使用docker和docker compose搭建Vulhub漏洞测试靶场 1 安装Docker和docker compose docker安装步骤 docker compose安装步骤 2 下载vulhub 安装完成docker和dock
  • Arduino的传感器使用教程1:PM2.5、温度和大气压传感器

    来自我的个人网站 http wangbch com ARDUINO SENSOR Arduino Temperature PM2 5 Atmos Arduino测定温度 PM2 5以及大气压 Temperature Measure and
  • 猜字母

    猜字母 把abcd s共19个字母组成的序列重复拼接106次 得到长度为2014的串 接下来删除第1个字母 即开头的字母a 以及第3个 第5个等所有奇数位置的字母 得到的新串再进行删除奇数位置字母的动作 如此下去 最后只剩下一个字母 请写出
  • mongoDB介绍与客户端认证权限

    mongoDB简介 Mongo 是 humongous 的中间部分 在英文里是 巨大无比 的意思 所以 MongoDB 可以翻译成 巨大无比的数据库 更优雅的叫法是 海量数据库 Mongodb是一款非关系型数据库 说到非关系型数据库 区别于
  • State Hook

    State Hook State Hook是一个在函数组件中使用的函数 useState 用于在函数组件中使用状态 useState 函数有一个参数 这个参数的值表示状态的默认值 函数的返回值是一个数组 该数组一定包含两项 第一项 当前状态
  • 华为OD机试 - 数据最节约的备份方法(Java )

    题目描述 有若干个文件 使用刻录光盘的方式进行备份 假设每张光盘的容量是500MB 求使用光盘最少的文件分布方式 所有文件的大小都是整数的MB 且不超过500MB 文件不能分割 分卷打包 输入描述 一组文件大小的数据 输出描述 使用光盘的数
  • github/gitlab中的fork操作

    在git中 fork是 分叉 复制 的意思 fork可以复制出一个仓库的新拷贝 包含了原有库中的所有提交记录 fork后这个代码库是完全独立的 可以在自己的库中做任何修改 也可以向原来的库提交合并请求 git中fork是什么意思 githu
  • transition将鼠标悬停在一个div元素上,逐步改变表格的宽度从100px到300px::

  • Lock 接口与 synchronized 关键字的区别

    拷贝别的博主总结的9点不同 1 JDK版本不同 synchronized关键字产生于JKD1 5之前 是低版本保证共享资源同步访问的主要技术 Lock接口产生于JDK1 5版本 位于著名的java util concurrent并发包中 是
  • 2018年WiFi、5G和蓝牙的发展以及与VR/AR的联系

    52VR大幅修正了原译文的翻译错误并作润饰编辑 这份文章中涵盖对无线技术们在2018年的表现之期待 包括可能实现的时间 以及它们将可能会怎样影响AR VR的版图 首先我们展望一下 不得不说的是2018年将是很多技术大转折的一年 这其中包括手
  • delphi listview动态添加图片_Qml组件化编程4-i18n动态国际化

    简介 本文是 Qml组件化编程 系列文章的第四篇 涛哥将教大家 如何在Qml中实现动态国际化 i18n 是 internationalization 国际化 的首尾字符加中间的 18 个字符 随着产品越做越大 要推向国际的时候 国际化这一步
  • C语言指针详解

    C语言指针详解 字符指针 1 如何定义 2 类型和指向的内容 3 代码例子 指针数组 1 如何定义 2 类型和内容 数组指针 1 如何定义 2 类型和指向类型 3 数组名vs 数组名 数组指针运用 数组参数 指针参数 一维数组传参 二维数组
  • 多级页表的优点和缺点

    多级页表是基于虚拟地址的分段来划分等级的 最低等级的页表上保存了最终的虚拟页号和物理页号的对应关系 例如拿32位的虚拟地址来说 如果页面的大小为4K 也就是12位 那么地址空间内将有20位 也就是1M的页表项目 每个项目对应一个虚拟页面 那
  • 机器学习2:朴素贝叶斯分类器Naïve Bayes Classifier(基于R language&Python)

    朴素贝叶斯是基于贝叶斯定理与特征条件独立假设的分类方法 朴素贝叶斯法与贝叶斯估计是不同的概念 对于给定的训练数据集 首先基于特征条件独立假设学习输入 输出的联合概率分布 然后基于此模型 对个给定的输入 x x x 利用贝叶斯定理求出后验概率
  • Unity基础篇:Unity2D图集(2):将剪裁好的图片导出。

    转载http blog csdn net hongyouwei article details 45011315 这位大佬讲的很好 但是他没有很好地考虑到我等小白的感受 故在此补充说明 1 在Unity的Project窗口下的Assets里
  • Kubernetes:全面了解 Deployment

    本文为作者的 Kubernetes 系列电子书的一部分 电子书已经开源 欢迎关注 电子书浏览地址 https k8s whuanle cn 适合国内访问 https ek8s whuanle cn gitbook Deployment 是
  • C语言练习

    大家好啊 我是一名职高的学生 即将面临就业 在就业和升本中选择了升本 这四年期间学的专业是计算机网络技术 第一年学过C语言也都忘得差不多了 这个暑假重新开始学的C语言并且从今天起开始写博客 下面这些题目是我在书上和一些资料上做的编程题 都是
  • HashMap、HashTable和Vector的存储扩容解析

    HashMap HashTable和Vector是面试时比较高频问到的知识点 今天就从三个的底层源码的角度分析三者之间的存储 扩容原理和异同点 HashMap 实现Map接口 实现原理 HashMap采用链地址法 即底层是一个数组实现 数组
  • c语言中gets函数可以输入空格吗_C语言 gets()和scanf()函数的区别

    scanf 函数和gets 函数都可用于输入字符串 但在功能上有区别 若想从键盘上输入字符串 hi hello 则应该使用 gets 函数 gets可以接收空格 而scanf遇到空格 回车和Tab键都会认为输入结束 所有它不能接收空格 ch