C-------------使用scanf输入字符串的故事;
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输入字符串的故事;相关推荐
- scanf输入字符串遇到空格?
使用scanf时对空格处理? 问题描述 解决办法 总结 问题描述 scanf输入字符串(含有空格的字符串,例如:"I love you!")时,总是在空格处停止扫描.我们用scan ...
- C语言scanf输入字符串,举例详解
除了在定义字符数组时初始化外,还可以通过scanf从键盘输入字符串.下面写一个程序: #include <stdio.h> int main(void) { char str[10]; / ...
- c语言怎么用scanf输入字母,c语言输入字符串(c语言怎么用scanf输入字符串)
但是实际操作发现我的字符串无论输入的多长多短,都是输入的什么输出的就. 在C语言中,输入输出字符串有以下两种方式:1 用scanf/printf输入输出.scanf/printf是C语言的格式化输入输 ...
- c语言用scanf输入指针字符串,c语言如何用scanf输入字符串
在C语言中,可以使用"scanf("格式控制字符串",变量内存地址)"语句输入字符串.scanf()函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式 ...
- c++ scanf输入字符串_在C语言中,你真的搞清楚字符串了吗?
1.C语言中没有字符串这种数据类型,可以通过char的数组来替代: 2.字符串一定是一个char的数组,但char的数组未必是字符串: 3.数字0(和字符'\0'等价)结尾的char数组就是一个字符串 ...
- 为什么在C语言中,用scanf输入字符串时,不需加
因为字符串变量名在 scanf 语句里 表示指针 (地址) 例如: char s[80]; scanf("%s",s); --这里的 s 已是地址. 当然,写成 scanf(&qu ...
- scanf函数输入字符串,C语言scanf函数输入字符串详解
除了在定义字符数组时初始化外,还可以通过scanf从键盘输入字符串.下面写一个程序: # include <stdio.h> int main(void) { char str[10]; ...
- 【C语言】输入字符串数组并排序
题目:输入n个字符串,并按照一定规则进行升序排序和输出 我的排序规则:按照字符串里面英文字符的值之和 #include<stdio.h> #include<string.h> ...
- c语言基础练习题 字符串输入scanf/gets 字符串赋值、比大小
PTA上C语言程序设计练习题,包含查找书籍.字符串排序.主要用到字符串输入scanf/gets 字符串赋值.比大小等知识. 1.查找书籍 习题9-4 查找书籍 (20 分) 给定n本书的名称和定价,本 ...
最新文章
- 字符串转数字 sql_SQL注入·sqli-labs·基于错误的字符串/数字型注入(第1~2关)
- 沈向洋、华刚:读科研论文的三个层次、四个阶段与十个问题
- socket read阻塞_go tcp中的ioutil.ReadAll阻塞的问题
- 成功解决TypeError: ‘float’ object cannot be interpreted as an index
- php 文件扫描去重,PHP中的去重方法详解和文件下载
- 【算法基础】常用的数据结构与算法
- 手机反编译java源码,再现反编译神器ShowJava,支持反编译出java源码
- 链接选项 rpath 的原理和应用
- 【知乎】神回答,我们吐的不是槽 233
- 【C语言】在线OJ题 BC99-BC119-牛客网编程初学者入门训练
- 【转】15个超炫的HTML5效果
- 无法Debug SQL: Unable to start T-SQL Debugging. Could not attach to SQL Server process on
- stl之multiset容器的应用
- 在MAC环境下之以太坊(ethereum)开发环境安装
- webpack使用笔记
- subplot()函数--Matplotlib
- 产品配件类目税目分类_商品和服务税收分类编码
- 网页测试网速软件,网页测网速在线测试(speedtest软件测速原理)
- HTML页面浏览历史,浏览历史记录功能
- python爬虫登录正方教务管理系统获取成绩数据_「武汉理工大学教务处管理系统」Python爬虫初学(4)登陆武汉理工大学教务处并转到成绩管理 - seo实验室...