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 ...
随机推荐
- 配置Spring.NET
先引入关键的程序集 Common.Logging.dll Spring.Core.dll 在配置文件配置中: <configSections> ...... <sectionGrou ...
- mybatis是如何防止sql注入?
sql注入发生的时间,sql注入发生的阶段在sql预编译阶段,当编译完成的sql不会产生sql注入 采用jdbc操作数据时候 String sql = "update ft_proposal ...
- 关于html头部引用(meta,link)
/*这一段头部表示 如果安装了GCF,则使用GCF来渲染页面,如果为安装GCF,则使用最高版本的IE内核进行渲染.*/<meta content="IE=edge,chrome=1&q ...
- IOS开发---菜鸟学习之路--(二十三)-直接利用键值对的方式来处理数据的感想
首先声明,本文纯粹只是做为本人个人新手的理解.文中的想法我知道肯定有很多地方是错的. 但是这就是我作为一个新人的使用方法,对于大牛非常欢迎指导,对于喷子请绕道而行. 由于这是早上跟我学长讨论数据处理时 ...
- IOS开发学习笔记037-九宫格代码实现
九宫格布局,用手机输入法时经常见到.先按3行3列写. 代码的实现主要是计算插入图片的位置. 每一张图片的位置和所在的行列密切相关.分析过程如下: 界面: 代码实现 1.把需要的图片资源添加进来 然后给 ...
- Android 使用剪贴板传递简单数据及复杂数据的方法
传递数据的场景在于不同页面之间跳转,需要携带数据:简单数据值指的是String, int等数据, 复杂数据指的是类 1. 使用剪贴板传递简单数据方法: 第一个页面里面放数据操作如下: Clipbo ...
- WordCount by Java
WordCount by Java 软测第二周作业 该项目github地址如下: https://github.com/YuQiao0303/WordCount 一.概述 项目WordCount的需求 ...
- C++指针详解 (转)
C++指针详解 指针的概念 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址.要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区, ...
- 聊聊、Java 命令 第三篇
这篇随笔主要写启动 jar 时,如果需要依赖其他的 jar 包该怎么处理,我会以 rabbitMQ 客服端启动为例. package com.rockcode.www.rabbitmq; import ...
- 课堂笔记II