第一周任务总结(scanf的正则表达式)

本文详细介绍了C语言中scanf函数的三种正则表达式输入方式:%[], ^ 和 *,并提供了丰富的实例,帮助读者理解如何使用这些符号来精确控制输入。

这里只介绍了scanf的三种基本正则表达式输入(%[] , ^ , *)
以后如果有需要再添加吧
我们先来简短介绍一下scanf(以输入字符串为例)
scanf("%s",s);
这里表示的输入一个字符串s,%表示选择,s是条件,只要是字符,便会被读入
此时scanf的正则表达式就出现啦,它的作用就是通过改变引号内的形式("%s")来成功将普通的什么都输入进去变成只输入你想要的输入
最简单的例子,就是当%s变成%1s时,表示只能输入一个字符,
那下面介绍的这些神奇的符号,简单理解就是给输入增加一些条件,然后致使你输入时可以让程序挑选出你需要的字符被输入,并且将其它的过滤掉


第一种(%[])

%[]是指输入满足[]内条件的字符,碰到条件外的字符停止输入
举个栗子
scanf("%[0-9]",s),这个时候,程序会挑选你输入中的0-9范围内的字符
比如输入:1234abcd
那么输出:1234

scanf("%[a-z]",s),这个时候,程序会挑选你输入中的a-z范围内的字符,
比如输入:abcd1234
那么输出:abcd


第二种(* )

% * 与% 刚好相反,表示不会输出满足[]内条件的字符,碰到[]内条件的字符就停止输入
举个栗子
scanf("%*[0-9]%[a-z]",str);程序会跳过0-9,只输出abc
printf("%s\n",str);
输入:123abc
输出:abc


第三种(^)

%^ 可以输入不包括指定字符的字符
举个栗子
scanf("%[^a-z]", s);表示只能输进出a-z之外的字符,若碰到a-z之间的则停止输入
printf("%s\n",s);
输入:123abc
输出:123
注意:这种方式可以读入空格
比如你可以这样写输入语句
scanf("%[^\n]",s)表示遇到\n才停止输入
printf("%s\n",s);
输入:123 456 78 9(输入之后压回车)
输出:123 456 78 9(这样输入便可以保留空格了)
由此也可以得出%[^,]可以表示遇到" , "停止输入
%[^@],表示遇到 “ @ ”停止输入
%s就是遇到空格便停止输入

添加一点:
如果要输入两行那么就需要给两个字符串分别scanf("%^ [\n] %*c % ^ [\n]")

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值