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 ...
随机推荐
- 2 Model层 -定义模型
1 ORM简介 MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库 ORM是“对象-关系-映射” ...
- Django基于Pycharm开发之四[关于静态文件的使用,配置以及源码分析](原创)
对于django静态文件的使用,如果开发过netcore程序的开发人员,可能会比较容易理解django关于静态文件访问的设计原理,个人觉得,这是一个middlerware的设计,但是在django中我 ...
- cf982d Shark
ref #include <algorithm> #include <iostream> #include <cstdio> #include <map> ...
- 设计模式之第16章-代理模式(Java实现)
设计模式之第16章-代理模式(Java实现) “现在朋友圈真是太让人蛋疼了啊.”“怎么说?”“一堆代理,各种卖东西的,看着好烦人.”“哎,删了呗.”“都是朋友,哪里好意思删啊.”“这倒也是...哎,迫 ...
- C++ STL map容器的说明测试1
// maptest.cpp : 定义控制台应用程序的入口点.// #include "stdafx.h" /*********************************** ...
- Python+Selenium练习篇之16-自定义浏览器窗口大小
本文来学习下如何通过Selenium方法,设置符合不同测试场景浏览器窗口大小.例如,你有一台机器,最大支持1366*768,你完全可以利用这个机器测试不同分辨率下的场景. 相关测试脚本代码如下: # ...
- CSU-2031 Barareh on Fire
CSU-2031 Barareh on Fire Description The Barareh village is on fire due to the attack of the virtual ...
- noip 2018 d2t1 旅行
noip 2018 d2t1 旅行 (题目来自洛谷) 给定n个城市,m条双向道路的图, 不存在两条连接同一对城市的道路,也不存在一条连接一个城市和它本身的道路.并且, 从任意一个城市出发,通过这些道路 ...
- 【转】手动写一个Behavior Designer任务节点
http://blog.csdn.net/qq_33747722/article/details/53539532 自己手写一个类似于CanSeeObject.Seek等任务节点并不是一件难事 下面我 ...
- easyui在datagrid只想选择一条
<table class="" id="jgrid" data-options="fitColumns:true,rownumbers: tru ...