关于在字符数组中利用scanf函数输入空格等问题
关于在字符数组中利用scanf函数输入空格等问题
控制串/数组 中的空白符使 scanf() 在输入流中跳过一个或多个空白行。空白符可以是空格(space)、制表符(tab)和新行符(newline)。 本质上,控制串中的空白符使 scanf() 在输入流中读,但不保存结果,直到发现非空白字符为止
ANSI C 标准向 scanf() 增加了一种新特性,称为扫描集(scanset)。 扫描集定义一个字符集合,可由 scanf() 读入其中允许的字符并赋给对应字符数组。 扫描集合由一对方括号中的一串字符定义,左方括号前必须缀以百分号。 例如,以下的扫描集使 scanf() 读入字符 A、B 和 C:
1.使用扫描集
%[ABC]
使用扫描集时,scanf() 连续吃进集合中的字符并放入对应的字符数组,直到发现不在集合中的字符为止(即扫描集仅读匹配的字符)。返回时,数组中放置以 null 结尾、由读入字符组成的字符串。
2.使用补集^
用字符 ^ 可以说明补集。把 ^ 字符放为扫描集的第一字符时,构成其它字符组成的命令的补集合,指示 scanf() 只接受未说明的其它字符。
对于许多实现来说,用连字符可以说明一个范围(ISO C99标准没有规定)。例如,以下扫描集使 scanf() 接受字母 A 到 Z:
**
利用扫描集 在字符数组中输出空格
**
scanf(“%[^\n]”,str); //str是数组首地址
scanf("%[^\n]",str); []中式正则表达式中的内容,^表示相反的情况,即 [\n]表示只接受\n [^\n]表示除了\n都接受,即也包括接受空格。
char string[31];
for( int i=0;i<30;i++){scanf("%[^\n]",&string[i]);}//输入asdfa fasdf dsafe
for(i=0;i<30;i++){ printf("%c\n\n",string[i]);}//输出为asdfa fasdf dsafe
若非利用扫描集则会与到空格符时就停止了输入
char string[31];
for( int i=0;i<30;i++){scanf("%c",&string[i]);}//输入asdfa fasdf dsafe
for(i=0;i<30;i++){ printf("%c\n\n",string[i]);}
此时的输出为asdfa,而空格及空格之后的字符串没有被输入
关于在字符数组中利用scanf函数输入空格等问题相关推荐
- C语言:VS中利用scanf_s函数输入字符串时出错
在vs中scanf函数中下图的代码正确,但是因为vs中scanf函数被认为不安全,现基本改用了scanf_s函数. #include<stdio.h> int main() {char a ...
- php 输出数组第一个元素,怎么在php中利用reset() 函数输出数组中的第一个元素
怎么在php中利用reset() 函数输出数组中的第一个元素 发布时间:2021-01-16 09:37:11 来源:亿速云 阅读:66 作者:Leah 本篇文章给大家分享的是有关怎么在php中利用r ...
- 课后习题5.13 编写一程序,将两个字符串连接起来,结果取代第一个字符串。 (1)用字符数组,不用stract函数(即自己写一个具有stract函数功能的函数); (2)用标准库中的stract函数;
课后习题5.13 编写一程序,将两个字符串连接起来,结果取代第一个字符串. (1)用字符数组,不用stract函数(即自己写一个具有stract函数功能的函数): (2)用标准库中的stract函数: ...
- 字符数组与字符串处理函数
C语言中没有字符串类型,也没有字符串变量,字符串是存放在字符类型数组中的. 定义.初始化.引用字符数组 1.定义:用字符数组来存放字符数据,在字符数组中的一个元素内存放一个字符.定义方法与定义数值型数 ...
- 如何在字符数组中存储空白字符
C没有为字符串定义专门的数据类型,而是把它存储在字符数组中,虽然这种方法可以有效地解决字符串存储问题,但当使用scanf函数为字符数组赋值时,含有空白符(空格.制表符.换行符)的字符串却无法完整储存. ...
- c语言怎么同时输入两个字符,解决C语言中使用scanf连续输入两个字符类型的问题...
昨天用C编程,遇到一个关于scanf的细节问题,假如运行如下程序: #include int main() { char ch1,ch2; printf("Input for ch1:/n& ...
- 将字符数组中的字符按从小到大的顺序排序
<程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p143 7.1.2 上级实训内容 [实训内容10]编写一个函数,要求用字符数组名作为参数,函数功能是将 ...
- php中glob怎么用,如何在php中利用glob函数对文件进行遍历
如何在php中利用glob函数对文件进行遍历 发布时间:2020-12-11 16:02:47 来源:亿速云 阅读:76 作者:Leah 如何在php中利用glob函数对文件进行遍历?相信很多没有经验 ...
- C语言-输入任意多个数字,存到整型数组,支持任意间隔符,同时支持输入字母存到字符数组中
第一次在CSDN上写博客- 记录一下想了有那么久的,这串代码 起因是做应用密码学的作业时,有Vigenere密码的加密解密.仿射密码加密解密.Playfair算法.Hill密码 因为数据量比较大,要把 ...
最新文章
- Java对多线程的支持
- shell特殊符号cut命令 sort_wc_uniq命令 tee_tr_split命令 shell特殊符号
- HP小型机superdome配置MC双机、PV、VG、LV初体验
- IDE / Qt / 浅谈 qmake 之 pro、pri、prf、prl文件
- ORACLE:RETURNING 子句
- ORACLE中的MERGE语法使用记录
- 东方时尚网上约车的用户名密码是什么_网站制作要学什么、在现代网页设计中,动效常见的几种用法...
- 首信易支付 php,ZenCart首信易支付模块递交失败解决
- 用python来开发webgame服务端(3)
- 用计算机绘制颗粒级配曲线,EXcel如何绘制颗粒级配曲线图
- 第四讲:学习理论(Learning Theory)
- 数据量再大也不怕!笔记本电脑也可以分析 100GB 数据
- Python float基本用法
- android 乐固渠道打包,Jenkins奇技淫巧 — Python乐固,多渠道打包篇(Android自动化构建)...
- 【java】springboot项目启动数据加载内存中的三种方法
- oracle10.21数据库安装,安装并创建数据库【Oracle Database 10g】(三)
- 一起学Pandas系列基础篇---loc和iloc
- mysql8.018_MySQL8.0.18通用版本安装
- 【校招】面试_字节跳动_客户端开发工程师_一面
- 万维考试系统python题库答案_万维试题库系统官方下载