sscanf 是个好东西
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; }
运行结果如下: