如果我想获得" /"之间的子字符串; " @",这个将起作用:
char buf[512] ="" ;
char src[512] = "iios/12DDWDFF@122";
sscanf( src, "%*[^/]/%[^@]", buf);
printf("%s\n", buf); //buf will be "12DDWDFF"
如何从" // ^&#@ iios //// 12DDWDFF @@@@ 122 /& * @(@ ///&#34 ;;
char buf2[512] ="" ;
char src[512] = "//^&#@iios////12DDWDFF@@@@122/&*@(@///";
sscanf(src, "%*[4][^/]/%[4][^@]", buf2);
printf("%s\n", buf2); //buf2 gets nothing
或
sscanf(src, "%*[^////]/////%[^@@@@]", buf2);
printf("%s\n", buf2); //buf2 gets nothing
答案 0 :(得分:4)
您可以按如下方式编写sscanf
声明 -
if(sscanf(src,"%*[^0-9]%[^@]",buf2)==1)
{
//do something
}
%*[^0-9]
会一直读到,直到遇到号码然后丢弃它,%[^@]
会在buf2
之前读到@
。