标签:内容 div std time 字符 eof 最大 can 方便
scanf都知道是格式化输入,偶然发现还有一个函数交sscanf,可以格式化解析字符串。使用sscanf可以很方便的提取、分割字符串,而且这是stdio中的方法,属于标准输入输出库,在网上找到了一些实例的代码:
char buf[512]; //取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。 ZeroMemory(buf,sizeof(buf)); sscanf("abcdefg", "%4s", buf); printf("%s\n",buf); //取到指定字符为止的字符串。如在下例中,取遇到空格为止字符串。 ZeroMemory(buf,sizeof(buf)); sscanf("123456 abcdedf", "%[^ ]", buf); printf("%s\n", buf); //取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。 ZeroMemory(buf,sizeof(buf)); sscanf("123456abcdedfBCDEF", "%[1-9a-z]", buf); printf("%s\n", buf); //取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。 ZeroMemory(buf,sizeof(buf)); sscanf("123456abcdedfBCDEF", "%[^A-Z]", buf); printf("%s\n", buf); //给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串,先将 "iios/"过滤掉,再将非‘@‘的一串内容送到buf中 ZeroMemory(buf,sizeof(buf)); sscanf("iios/12DDWDFF@122", "%*[^/]/%[^@]", buf); printf("%s\n", buf); //给定一个字符串"hello, world",仅保留world。(注意:“,”之后有一空格) ZeroMemory(buf,sizeof(buf)); sscanf("hello, world", "%*s%s", buf); printf("%s\n", buf); //格式化分割int int a=0, b=0, c=0; sscanf("2006:03:18","%d:%d:%d",&a,&b,&c); printf("a=%d,b=%d,c=%d\n",a,b,c); //格式化分割字符串1 ZeroMemory(buf,sizeof(buf)); char sztime1[16],sztime2[16]; ZeroMemory(sztime1,sizeof(sztime1)); ZeroMemory(sztime2,sizeof(sztime2)); sscanf("aaaa - bbbb", "%s - %s", sztime1, sztime2); printf("%s %s\n",sztime1,sztime2); //格式化分割字符串2 ZeroMemory(buf,sizeof(buf)); ZeroMemory(sztime1,sizeof(sztime1)); ZeroMemory(sztime2,sizeof(sztime2)); sscanf("aaaa-bbbb", "%[a-z] - %[a-z]", sztime1, sztime2); printf("%s %s\n",sztime1,sztime2);
标签:内容 div std time 字符 eof 最大 can 方便
原文地址:http://www.cnblogs.com/hatsusakana/p/7679903.html