sscanf与sprintf
来源:互联网 发布:sql contains 用法 编辑:程序博客网 时间:2024/05/21 18:49
#include<stdio.h>
定义函数 int sscanf (const char *str,const char * format,........);
函数说明
sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考scanf()。转换后的结果存于对应的参数内。
返回值 成功则返回参数数目,失败则返回-1,错误原因存于errno中。 返回0表示失败 否则,表示正确格式化数据的个数 例如:sscanf(str,"%d%d%s", &i,&i2, &s); 如果三个变成都读入成功会返回3。 如果只读入了第一个整数到i则会返回1。证明无法从str读入第二个整数。
main()
{
int i;
unsigned int j;
char input[ ]=”10 0x1b aaaaaaaa bbbbbbbb”;
char s[5];
sscanf(input,”%d %x %5[a-z] %*s %f”,&i,&j,s,s);
printf(“%d %d %s ”,i,j,s);
}
执行 10 27 aaaaa
大家都知道sscanf是一个很好用的函数,利用它可以从字符串中取出整数、浮点数和字符串等等。它的使用方法简单,特别对于整数和浮点数来说。但新手可能并不知道处理字符串时的一些高级用法,这里做个简要说明吧。
1. 常见用法。
charstr[512]={0};
sscanf("123456","%s",str);
printf("str=%s",str);
2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。
sscanf("123456","%4s",str);
printf("str=%s",str);
3. 取到指定字符为止的字符串。如在下例中,取遇到空格为止字符串。
sscanf("123456abcdedf","%[^]",str);
printf("str=%s",str);
4. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。
sscanf("123456abcdedfBCDEF","%[1-9a-z]",str);
printf("str=%s",str);
5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。
sscanf("123456abcdedfBCDEF","%[^A-Z]",str);
printf("str=%s",str);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
通过以上对比sscanf与sscanf_s的使用,可以看出后者对缓冲区安全有了更多的考虑,从而避免了许多不经意的烦恼。
大家都知道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);
- sprintf与sscanf用法
- sscanf与sprintf
- sprintf与sscanf用法
- sscanf与sprintf
- sprintf与sscanf函数
- sprintf()与sscanf()
- 浅谈sscanf与sprintf
- sprintf与sscanf
- sscanf与sprintf
- sscanf与sprintf
- sprintf与sscanf的区别
- sprintf与sscanf的区别
- sprintf与sscanf的用法
- sscanf与sprintf用法总结
- sscanf与sprintf用法总结
- sprintf函数与sscanf函数
- sprintf与sscanf函数总结
- sscanf sprintf
- 设计模式--简单工厂
- Android开发之布局简介(1)
- 关于 MFC 中 CString 内存泄露的问题
- Android 动画框架详解
- VB 动态添加控件及磁盘、目录、文件控件
- sscanf与sprintf
- head first---------------singleton pattern
- 类对象使用 memset 应注意的问题
- cocos2d-x高仿捕鱼达人实例分析(五)
- Mongo 基础学习系列 一 Linux下Mongo安装
- MFC_加入全局变量的办法
- Linux操作系统tcpdump抓包分析详解
- JAVA从零单排3-----面向对象(上)
- 跟着BOY学习开发cocos2d-x 游戏 (前提篇 一)