前言
当输入流是一个字符串,我们需要在其中提取我们所需要的数值时,正则表达式就显得很有用。
如果我们能在输入的时候,就过滤掉无用信息,就可以省去后期提取数值的步骤。
使用方法
表示读取长度为n的字符串
输入:123456
输出str:123 ( 以scanf("%3s", str);为例 )
表示读取a-z的小写字母,出现非a-z的小写字母,立即停止读取。
输入:abcd123
输出str:abcd
%*[ ]表示过滤掉满足括号内条件的字符串 %[ ]表示读取
输入:abcd123
输出str:123
^表示非,^0-9表示非0-9的一切字符,因此是遇到0-9就立即停止读取。
输入:abcd123
输出str:abcd
PS:%[^\n] 表示 读取回车符以前的所有字符,常用于读取含空格的字符串。
%[^ ] 表示 读取空格符以前的所有字符。
表示过滤掉回车以前所有的字符,并将回车符的下一个数字赋给num。
输入:abcd\n12
输出num:12
PS:%*[^ ]表示过滤空格以前的所有字符
原文:https://www.cnblogs.com/woxiaosade/p/10480570.html