c语言:谁帮我解释一下下面的程序

%*[^0-9]%d这是scanf中使用正则表达式的用法,*表示将跳过后面表达式(即[^0-9])所匹配的项,而[^0-9]表示非0-9之间的表达式,即输入直到出现数字0-9,数字之前的表达式都被过滤掉。

后面的%d就是读取一个整型啦。

所以如果输入a111b222ccc333

那么首先a匹配%*[^0-9],将被忽略掉,然后读取111到t,然后再忽略b,再读取222,以此类推。