sscanf是一个很好用的函数,利用它可以从字符串中取出整数、浮点数和字符串等等。它的使用方法简单,特别对于整数和浮点数来说。它还有处理字符串时的一些高级用法。
1. 常见用法。
以下是引用片段: char str[512] = {0}; sscanf("123456 ", "%s", str); printf("str=%sn", str); |
2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。
以下是引用片段: sscanf("123456 ", "%4s", str); printf("str=%sn", str); |
3. 取到指定字符为止的字符串。如在下例中,取遇到空格为止字符串。
以下是引用片段: sscanf("123456 abcdedf", "%[^ ]", str); printf("str=%sn", str); |
4. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。
以下是引用片段: sscanf("123456abcdedfBCDEF", "%[1-9a-z]", str); printf("str=%sn", str); |
5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。
以下是引用片段: sscanf("123456abcdedfBCDEF", "%[^A-Z]", str); printf("str=%sn", str); |
#include<iostream>
using namespace std;
int main()
{
char buf[30];
int a;
char buf2[30];
char buf3[30];
sscanf("hello,123take,get,miss","%[^,],%d%*[^,],%[^,]%s",buf,&a,buf2,buf3);
cout<<buf<<endl
<<a<<endl
<<buf2<<endl
<<buf3<<endl;
return 0;
}
运行结果如下: