scanf格式控制符之%[]的应用
考虑只读入小写字母的字符串,这个问题要如何用scanf解决呢?
这就用到了%[] 这个格式控制符,它支持a-z这样的格式控制
char s[111];
scanf("%[a-z]", s);
之前总是写成%[a-z]s
当然这样会出现各种各样的问题,这里就不多说了。
废话少说,多举一些例子来学习%[] 这个格式控制符吧。
char s[111];
scanf("%[b-d0-9]", s);//只读 bcd和数字 的字符串
之前总是写成%[b-d|0-9]s 注意这里没有&|这样的运算。。。
有聪明的读者应该会问这样的话,想减号-怎么办呢?
char s[111];
scanf("%[-b-d0-9]", s);//只读 bcd和数字和减号- 的字符串,下同
scanf("%[b-d-0-9]", s);
scanf("%[b-d0-9-]", s);
这几个方法是一样的,注意其中减号的位置,原理是减号两边要同时有可见字符才可以被识别成区间,否则会被识别成减号。
有了只读入某些字符,那么读入除了某些字符的字符串要怎么办呢。
char s[111];
scanf("[^b-d0-9]", s);//不读入 bcd和数字 其他字符都读入
注意^一定要紧贴左括号,否则会被判断成^符号,这里^代表不读后面的字符。
于是可以有不读入^字符
char s[111];
scanf("%[^\n]", s);//不读入换号符,可以用这个来读一行字符,其中可以带空格
scanf("%[^^]", s);//不读入 ^字符
又有人会问 [ ] 要怎么去读入呢
其中[就当做普通字符就行了,但是]在想读入]时一定要紧贴左括号,和^一样,在不想读入时要紧贴[^,看下正确的示范。
char s[111];
scanf("%[]a-z]", s);//读入 ] 和 a-z
scanf("%[^]a-z]", s);//除了 ] 和 a-z 其他字符都读入
还有想读入和不想读入两个不能同时使用,原因自己根据上面的想想就知道了^v^。
由于笔者水平有限,若有错误,欢迎指出。
scanf格式控制符之%[]的应用的更多相关文章
- scanf格式控制符的完整格式
scanf格式控制的完整格式: % * m l或h 格式字符 ①格式字符与printf函数中的使用方式相同,以%d.%o.%x.%c.%s.%f.%e,无%u格式.%g ...
- scanf格式控制符
格式控制 . %d %o %x %c %s %f %e 无%u格式.%g格式 . scanf("%3d%3d", &a, &b); 输入: //a=123,b=45 ...
- C语言的格式控制符
1. 格式控制符 格式输出printf 作用是向终端输出若干个类型任意的数据. 格式:printf (格式控制符,输出列表) 1) 格式控制符 l % ...
- C++流格式控制符的使用【来自网络】
注意添加<iomanip>头文件. 使用控制符控制输出格式 控制符 作用 dec 设置整数的基数为10 hex 设置整数的基数为16 oct 设置整数的基数为8 setbase(n) 设置 ...
- [C] scanf - 格式输入函数
scanf 函数称为格式输入函数,即把用户键盘输入的内容保存到指定的变量中. scanf 函数签名 scanf("格式控制字符串", 变量地址列表) scanf 函数是一个标准库函 ...
- Swift学习——格式控制符和元组流程控制(二)
Swift中的格式控制符和元祖 (1)首先介绍一下元祖,元祖是关系型数据库中 比如学生表中的姓名,年龄,电话等 定义例如以下 var studentinfo = ("jhon", ...
- 文件重定向,getline()获取一样,屏幕输出流,格式控制符dec,oct,hex,精度控制setprecision(int num),设置填充,cout.width和file(字符),进制输入
1.在window下的命令重定向输出到文件里 2.将内容输入到某个文件里的方式:命令<1.txt (使用1.txt中的命令) 3.读取文件里的名,然后将命令读取最后输出到文件里.命令< ...
- PHP时间格式控制符对照表
format 字符 说明 返回值例子 日 --- --- d 月份中的第几天,有前导零的 2 位数字 01 到 31 j 月份中的第几天,没有前导零 1 到 31 S 每月天数后面的英文后缀,2 个字 ...
- C# ToString格式控制符
C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025 E 科学型 25000.ToString ...
随机推荐
- HDU1042 A * B Problem Plus
A * B Problem Plus Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- day 17 jQuery
什么是jQuery? 可以把它认为是python中的模块,导入就可以使用模块中的功能. jQuery 的版本: 1.xx 系列 2.xx 系列 3.xx 系列 最常用的为1 系列,1系列最新版为1.1 ...
- laravel5.2总结--本地化以及常量的使用
1.本地化 Laravel 的本地化功能提供方便的方法来获取多语言的字符串,让你的网站可以简单的支持多语言. 语言包存放在 resources/lang 文件夹的文件里.每一个子目录应该对应一种语言 ...
- Python框架之Django学习笔记(十三)
Django站点管理(续1) 上次介绍了Django的站点管理的一些基础知识,这次再来深入了解一下Django的站点管理. Admin是如何工作的: 在幕后,管理工具是如何工作的呢? 其实很简单. 当 ...
- 【N-Quens II】cpp
题目: Follow up for N-Queens problem. Now, instead outputting board configurations, return the total n ...
- pycharm许可证过期
1.选择enter license 2.选择license server 3.输入http://idea.imsxm.com 4.点击ok 好,解决了
- plsql编程
ORACLE PL/SQL编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设计语言,该 ...
- linux/mac下的配置自定义命令alias
linux/mac下的自定义命令alias,并保存别名使其永久生效(重启不会失效) 在做开发每次提交代码的命令都是一长串参数,不想去记,于是可以使用alias命令来解决这个问题:alias aComm ...
- 【LeetCode】移除元素(Remove Element)
这道题是LeetCode里的第27道题. 题目描述: 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原 ...
- 【转】ugui自制摇杆
http://www.cnblogs.com/duyushuang/p/4457691.html 珍爱生命,远离插件. 以上8个字,好好理解. 反正我是这么觉得. 我说的是unity,不是魔兽世界. ...