截取字符串
#include int main(int argc,char** argv)
{
const char* in = "a1b2c3ABCdef 123";
char out[100] = {0};
sscanf(in,"%3s", out);
printf("截取前3个字符:%s\n",out);
sscanf(in,"%*3s%3s", out);
printf("跳过3个字符后截取前3个字符:%s\n",out);
sscanf(in,"%*[^A]A%3s", out);
printf("忽略开头到A字符串,截取前3个字符:%s\n",out);
return 0;
}
%表示选择,%后面的是条件。
比如"%s",s是一个条件,表示任意字符,"%s"的意思是:只要输入的东西是一个字符,就把它拷贝给str。
比如"%3s"又多了一个条件:只拷贝3个字符。
比如“%[a-z]”的条件稍微严格一些,输入的东西不但是字符,还得是一个小写字母的字符。
[]内是匹配的字符,^表示求反集,当遇到非集合内的字符时终止。贪婪算法,即算法可能多的匹配字符。
注意:遇到非匹配项就结束。不处理非匹配项后面的内容。
%* 与%刚好相反,表示过滤满足条件的字符,也就是跳过满足条件的字符,其后一定要有新的%语句,否则无法读入。
注意:遇到非匹配项就结束。不处理非匹配项后面的内容。
https://www.cnblogs.com/orange1438/archive/2013/05/12/4544958.html 这文章完全错误。