sscanf,sscanf

Posted 白宫飘红旗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sscanf,sscanf相关的知识,希望对你有一定的参考价值。

在#include<stdio.h>

定义函数 int sscanf (const char *str,const char * format,........);

函数说明:

sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考scanf()。转换后的结果存于对应的参数内。

返回值 成功则返回参数数目,失败则返回-1。

sscanf(str,"%d%d%s", &i,&i2, &s)

注意sscanf_s,当读入的类型是整数或其它长度可以确定的类型时,不能在类型后面跟上长度,但是对于字符串类型(char *)长度无法得知则必须在类型后面明确指出字符串的最大长度(即可以容纳的空间)。

int sscanf_s(   const char *buffer,   const char *format [,argument ] ...);

sscanf和scanf的不同是输入来源,前者是一个字符串,后者则是标准输入设备

大家都知道sscanf是一个很好用的函数,利用它可以从字符串中取出整数、浮点数和字符串等等。它的使用方法简单,特别对于整数和浮点数来说。但新手可 能并不知道处理字符串时的一些高级用法,这里做个简要说明吧。

1. 常见用法。

以下是引用片段:
  char str[512] = ; 
  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);

 

以上是关于sscanf,sscanf的主要内容,如果未能解决你的问题,请参考以下文章

sscanf神器使用

你的sscanf用对了吗

sscanf 与 sscanf_s

__isoc99_sscanf() 有啥作用?

用逗号分隔符和 sscanf 分隔整数

sscanf,sscanf