用 scanf 系列函数实现简单的 email 地址合法性检查功能

对于 scanf 家族系列函数( scanf, fscanf, sscanf, vscanf, vsscanf, vfscanf),相信大家对它们常见的格式化输入已十分熟悉。 但是, scanf 系列函数,还有一个特殊的用法,该用法能够实现简单的字符过滤功能,类似正则表达式,您是否知道呢? scanf 函数还能实现正则表达式?让我们往下看吧^_^

这个特殊的格式,就是“[ ]”,一对中括号,支持简单的正则表达式功能,比如 "%[^a-z]" 将忽略所有的 a-z 的小写字母; "%[A-Z]" 将只接收 A-Z 的大写字母。学过正则表达式的同学,一看这个用法,就会觉得那么的亲切^_^。

scanf 家族函数(scanf, fscanf, sscanf, vscanf, vsscanf, vfscanf)都支持这种特殊功能,虽然不如真正的正则表达式那么强大,但是如果运用灵活,在验证要求不高的场景下,这个特性还是能够为我们节省不少精力的,杀鸡焉用牛刀!让我们一睹该特性的强大之处吧!(从函数单一性考虑, scanf 家族函数的功能太过强大了,呵呵)

 下面我们以检查电子邮箱地址的合法性为例,进行说明,假设合法 Email 地址的用户名和域名均是由数字、字母、中划线、下划线、圆点组成,其他字符均为非法字符。

源码如下:

 

/******************************************************************************
Copyright by Ja
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值