sscanf 用法基础学习

来源:岁月联盟 编辑:zhu 时间:2009-02-15
开始一直不理解sscanf的用法,在教室里看书,没有网可上,就一直来猜这个函数作用,不过也猜得八九不离十了。回头来网上看看,没想到sscanf的作用这么强大。而且它的兄弟sprintf 我一直在用,呵呵,咋就没想到他还有个弟弟呢?

sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者以固定字符串为输入源。比如说sscanf("12345","%s",buf) 这里的输入是"12345"这个字符串,然后以字符串的形式存放在buf中。

实例一

char buf[512] = {0};


sscanf("123456 ", "%s", buf); //把"123456"字符串以字符串格式输入buf


printf("%s/n", buf); //结果为:123456

实例二

sscanf("123456 ", "%4s", buf); // 取最大长度为4字节的字符串。


printf("%s/n", buf); // 结果为:1234


实例三


sscanf("123456 abcdedf", "%[^ ]", buf); //取遇到空格为止字符串。

printf("%s/n", buf); //结果为:123456


实例四

sscanf("123456abcdedfBCDEF", "%[1-9a-z]", buf); //取仅包含1到9和小写字母的字符串。
printf("%s/n", buf); //结果为:123456abcdedf


实例五

sscanf("123456abcdedfBCDEF", "%[^A-Z]", buf); //取遇到大写字母为止的字符串。
printf("%s/n", buf); //结果为:123456abcdedf

sscanf里面对字符串的处理 有点像正则表达式 不过功能就略逊一筹了。

图片内容