sscanf用法总结

原创
2016/01/27 14:25
阅读数 467

使用sscanf来提取字符串中的指定内容, 感觉还不错, 现在在这里做一个总结

注意代码中变量均无定义, 可以根据用法自行定义.

//1.基本用法
string = "hello world 88888";
sscanf(string, "%s %s %d", buf1, buf2, &digit);
//sscanf返回提取变量的个数

//2.提取指定长度的字符串
string = "a123ddd444";
sscanf(string, "%5s", buf1);
printf("%s\n", buf1); //a123d

//3.提取到指定字符为止的字符串
string = "Content-Length: 2556";
sscanf(string, "%[^:]:%d", buf1, &digit);

/*buf1:Content-Length                 digit: 2556*/
//3.提取到指定字符集
string = "123abcABC";
sscanf(string, "%[^a-z]", buf1);
/*buf1: 123*/
//4.获取到指定字符中间的字符
string = "ios<android>wp7";
sscanf(string, "%*[^<]<%[^>]", buf1);
/*buf1: android*/

//5.指定有跳过的字符
string = "iosVSandroid";
sscanf(string, "%[a-z]VS%[a-z]", buf1, buf2);
/*buf1: ios   buf2: android*/
//6.分割以某字符为间隔的字符串
string = "android-ios-wp7";
sscanf(string, "%[^-]-%[^-]-%[^-]", buf1, buf2, buf3);
//7.过滤掉不要的字符串
//用在%号后面加一*号,代表过滤这个字符串,不读取 
string = "android ios wp7";
sscanf(string, "%s %*s %*s", buf1);

展开阅读全文
打赏
1
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
1
分享
返回顶部
顶部