表头文件 #include(stdio.h)
定义函数 int sscanf (const char *str,const char * format,........);
函数说明 sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。
格式转换形式请参考scanf()。转换后的结果存于对应的参数内。
返回值 成功则返回参数数目,失败则返回-1,错误原因存于errno中。
/*
sscanf 的用法
%[^=] 表示: 到 = 截止 不包含 =
%[=] 表示: 到 = 截止 包含 =
%*[^=]=%s 表示: 到 = 号开始匹配之后的
*/
#include<stdio.h>
#include<string.h>
int main()
{
char s[] = "notepad=1.0.0.1001>";
char szfilename[32]={'\0'};
int i = sscanf(s, "%[^=]", szfilename); // notepad
printf("i = %d, szfilename=%s\n", i, szfilename);
memset(szfilename, 0, sizeof(szfilename));
int j = sscanf(s, "%*[^=]=%s", szfilename); //1.0.0.1001>
printf("j = %d, szfilename=%s\n", j, szfilename);
memset(szfilename, 0, sizeof(szfilename));
int k = sscanf(s, "%*[^=]=%[^>]", szfilename);//1.0.0.1001
printf("k = %d, szfilename=%s\n", k, szfilename);
memset(szfilename, 0, sizeof(szfilename));
int m = sscanf(s, "%[a-z]", szfilename);//notepad
printf("m = %d, szfilename=%s\n", m, szfilename);
}
获取邮箱id
#include<stdio.h>
#include<string.h>
int main()
{
char s[] = "\"test@163.com\" <test@163.com>";
char szfilename[32]={'\0'};
int i = sscanf(s, "%*[^<]<%[^@]", szfilename); // notepad
printf("i = %d, szfilename=%s\n", i, szfilename);
}