AEsun 2014-11-18 10:31 采纳率: 100%
浏览 2711
已采纳

为什么scanf分辨不出空格和空字符,gets()就可以分辨出来

我是新手,刚刚学习字符串,为什么scanf分辨不出空格和空字符,gets()就可以分辨出来,分辨的原理是是什么?比如在scanf中"hello world"就只有“hello",但gets中就是"hello world"?

  • 写回答

7条回答

  • Conmajia 2014-11-18 10:54
    关注

    对scanf而言,空格属于分隔符,会以空格作为结尾。比如你输入字符串"hello[空格]world[回车]",对scanf而言,它首先找到第一个非空字符"h",然后一直继续到下一个空字符"[空格]"结束,因此scanf得到的是"hello"。gets是以换行(行结束)符作为结束的判定,所以gets会一直读取到"[回车]",得到字符串为"hello world"。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 nginx中的CORS策略应该如何配置
  • ¥30 信号与系统实验:采样定理分析
  • ¥100 我想找人帮我写Python 的股票分析代码,有意请加mathtao
  • ¥20 Vite 打包的 Vue3 组件库,图标无法显示
  • ¥15 php 同步电商平台多个店铺增量订单和订单状态
  • ¥15 关于logstash转发日志时发生的部分内容丢失问题
  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题