c语言scanf正则用法
时间: 2023-11-10 14:06:09 浏览: 82
scanf()函数汇总【完美版】.docx
在C语言中,scanf()函数对正则表达式的支持并不强大,但是我们还是可以使用一些控制字符来实现一些简单的正则匹配。下面是一些常用的控制字符:
%c:一个单一的字符
%d:一个十进制整数
%e, %f, %g:一个浮点数
%i:一个整数
%s:一个字符串
%o:一个八进制数
%x:一个十六进制数
%u:一个无符号整数
%[ ]:一个字符集
除了上述常用的控制字符外,还有一些特殊的控制字符可以用于实现一些简单的正则匹配,例如:
“%ns”,n为整数,读入的字符串最长不超过n,然后在末尾补’\0’
“%nf”:读入的浮点数最多有n位整数,位数多于n,会截断。
“%n[a-z]”:读入最多n个字符,如果遇到非a-z的字符,停止
“%[^=]”:读入任意多的字符,直到遇到"="停止
“%n[^=]”:读入"="号前的至多n个字符
"*":表示该输入项读入后不赋予任何变量,即跳过该输入值。
举个例子,如果我们想要用scanf()代替gets()读取一整行存储为字符串,可以使用以下代码:
char *str;
scanf("%[^\n]%*c",str);
printf("%s",str);
阅读全文