【C语言】sscanf函数

sscanf函数使用详解

sscanf函数原型
#include <stdio.h>
int sscanf(const char *str, const char *format, ...);
  • str:待解析的字符串;
  • format:字符串格式描述; 形式为

[=%[*][width][modifiers]type=]

  • 最后是一序列数目不定的指针参数,存储解析后的数据.
使用示例
1、整形数转换
int year, month, day;
 
int converted = sscanf("20191103", "%04d%02d%02d", &year, &month, &day);
printf("converted=%d, year=%d, month=%d, day=%d/n", converted, year, month, day);

输出结果:

converted=3, year=2019, month=11, day=03
2、浮点数转换
double longitude, latitude;
int converted = sscanf("113.123456789 31.123456789", "%lf %lf", &longitude, &latitude);
printf("converted=%d, longitude=%.9lf, latitude=%lf/n", converted, longitude, latitude);

输出结果:

converted=2, longitude=113.123456789, latitude=31.123457
高级用法

1、数字 + 字符串

char str[32] = "";
sscanf("123456abcdedf", "%31[0-9]", str);
printf("str=%s/n", str);

输出结果:

str=123456

2、增加a-z的描述

char str[32] = "";
sscanf("123456abcdedf", "%31[0-9a-z]", str);
printf("str=%s/n", str);

输出结果:

str=123456abcdedf

3、使用*的例子:

char str[32] = "";
int ret = sscanf("123456abcdedf", "%*[0-9]%31[a-z]", str);
printf("ret=%d, str=%s/n",ret, str);

输出结果:

ret=1, str=abcdedf
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值