scanf是位于我们标准库内的一个输入函数,初学C经常会用到:

格式:scanf("%..",&...),

前面是输入类型,后面是输入内容的地址;

看以下代码;

#include <stdio.h>

#include <string.h>

int main()

{

char word[20];

bzero(word,20);

printf("请输入你要打印的内容:");

scanf("%s",word);

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

return 0;

}

开始测试:

可以看到能够正常的打印出来字符串,接下来我们加入空格会怎么样?

这怎么回事?后面的boy呢?

再看下面的代码

#include <stdio.h>

#include <string.h>

int main()

{

int word[5];

bzero(word,5);

printf("请输入你要打印的内容:");

for(int i=0;i<5;i++)

scanf("%d",&word[i]);

for(int i=0;i<5;i++)

printf("%d",word[i]);

return 0;

}

开始测试:

欸,为什么数字就可以呢?

多次尝试之后发现,在输入字符串数组时候遇到空格就不会写入后面的数据,而整数数组,字符数组依旧能够正常输入;

查阅资料:scanf是以删除的方式,从缓冲区拿数据(stdin输入的数据存在缓冲区),当缓冲区为空时候阻塞,等待用户操作,读取数据后返回继续运行;

猜测:那么会不会是因为字符串数组输入就进行一次,hi boy其实都在缓冲区,只是它只读取一次,遇到空格就跟遇到了回车符一样停了,所以把boy留在了缓冲区了呢?

总结:scanf函数从stdin读取数据写入字符串时候遇到空白符(空格,回车)就停了;

以上内容只是个人经验,有错误还请指出,多多留言ddd~~~

C-------------使用scanf输入字符串的故事;相关推荐

  1. scanf输入字符串遇到空格?

    使用scanf时对空格处理? 问题描述 解决办法 总结 问题描述 scanf输入字符串(含有空格的字符串,例如:"I love you!")时,总是在空格处停止扫描.我们用scan ...

  2. C语言scanf输入字符串,举例详解

    除了在定义字符数组时初始化外,还可以通过scanf从键盘输入字符串.下面写一个程序: #include <stdio.h> int main(void) { char str[10]; / ...

  3. c语言怎么用scanf输入字母,c语言输入字符串(c语言怎么用scanf输入字符串)

    但是实际操作发现我的字符串无论输入的多长多短,都是输入的什么输出的就. 在C语言中,输入输出字符串有以下两种方式:1 用scanf/printf输入输出.scanf/printf是C语言的格式化输入输 ...

  4. c语言用scanf输入指针字符串,c语言如何用scanf输入字符串

    在C语言中,可以使用"scanf("格式控制字符串",变量内存地址)"语句输入字符串.scanf()函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式 ...

  5. c++ scanf输入字符串_在C语言中,你真的搞清楚字符串了吗?

    1.C语言中没有字符串这种数据类型,可以通过char的数组来替代: 2.字符串一定是一个char的数组,但char的数组未必是字符串: 3.数字0(和字符'\0'等价)结尾的char数组就是一个字符串 ...

  6. 为什么在C语言中,用scanf输入字符串时,不需加

    因为字符串变量名在 scanf 语句里 表示指针 (地址) 例如: char s[80]; scanf("%s",s); --这里的 s 已是地址. 当然,写成 scanf(&qu ...

  7. scanf函数输入字符串,C语言scanf函数输入字符串详解

    除了在定义字符数组时初始化外,还可以通过scanf从键盘输入字符串.下面写一个程序: # include <stdio.h> int main(void) { char str[10]; ...

  8. 【C语言】输入字符串数组并排序

    题目:输入n个字符串,并按照一定规则进行升序排序和输出 我的排序规则:按照字符串里面英文字符的值之和 #include<stdio.h> #include<string.h> ...

  9. c语言基础练习题 字符串输入scanf/gets 字符串赋值、比大小

    PTA上C语言程序设计练习题,包含查找书籍.字符串排序.主要用到字符串输入scanf/gets 字符串赋值.比大小等知识. 1.查找书籍 习题9-4 查找书籍 (20 分) 给定n本书的名称和定价,本 ...

最新文章

  1. 字符串转数字 sql_SQL注入·sqli-labs·基于错误的字符串/数字型注入(第1~2关)
  2. 沈向洋、华刚:读科研论文的三个层次、四个阶段与十个问题
  3. socket read阻塞_go tcp中的ioutil.ReadAll阻塞的问题
  4. 成功解决TypeError: ‘float’ object cannot be interpreted as an index
  5. php 文件扫描去重,PHP中的去重方法详解和文件下载
  6. 【算法基础】常用的数据结构与算法
  7. 手机反编译java源码,再现反编译神器ShowJava,支持反编译出java源码
  8. 链接选项 rpath 的原理和应用
  9. 【知乎】神回答,我们吐的不是槽 233
  10. 【C语言】在线OJ题 BC99-BC119-牛客网编程初学者入门训练
  11. 【转】15个超炫的HTML5效果
  12. 无法Debug SQL: Unable to start T-SQL Debugging. Could not attach to SQL Server process on
  13. stl之multiset容器的应用
  14. 在MAC环境下之以太坊(ethereum)开发环境安装
  15. webpack使用笔记
  16. subplot()函数--Matplotlib
  17. 产品配件类目税目分类_商品和服务税收分类编码
  18. 网页测试网速软件,网页测网速在线测试(speedtest软件测速原理)
  19. HTML页面浏览历史,浏览历史记录功能
  20. python爬虫登录正方教务管理系统获取成绩数据_「武汉理工大学教务处管理系统」Python爬虫初学(4)登陆武汉理工大学教务处并转到成绩管理 - seo实验室...

热门文章

  1. 微信小程序调用豆瓣电影API(详细)
  2. javascript 实现购物车页面
  3. 数据挖掘:概念与技术 第一章
  4. c语言用string类型,c语言中的string
  5. 【Heritrix 03】heritrix_dmesg.log
  6. 网络切片技术缺点_网络切片和服务质量(QoS)有什么区别?
  7. Myth源码解析系列之四- 配置与启动详解
  8. 纽卡斯尔计算机学院地址,纽卡斯尔大学
  9. DGIOT物联网开源平台——天翼云部署
  10. html避免js脚本注入,chrome浏览器拓展——js脚本拦截及注入