标准IO库函数 ssanf和sprintf
2015-09-24 11:00
337 查看
->格式化输入 sscanf
int scanf(const char *format, …);从标准输入读入信息
int fscanf(FILE *stream,const char *format, …);
从stream指向的文件中读入信息
int sscanf(const char *buf,const char *format, …);
从buf指定的内存区域中读入信息
格式化输入sscanf(例)1、取指定长度的字符串
char buf[512] = "";
sscanf("123456", "%3s", buf);
printf("%s\n", buf);
结果为:123
2、取到指定字符为止的字符串
sscanf("123456 abcdedf", "%[^ ]", buf);
printf("%s\n", buf);
结果为:123456
3、取仅包含指定字符集的字符串
sscanf("123abcABC", "%[1-9a-z]", buf);
printf("%s\n", buf);
结果为:123abc
4、取到指定字符集为止的字符串
sscanf("123abcABC", "%[^A-Z]", buf);
printf("%s\n", buf);
结果为:123abc
5、取两个字符之间的字符串
sscanf("abc#def@ghi", "%*[^#]#%[^@]", buf);
printf("%s\n", buf);
结果为:def
6、仅保留字符串““hello, world”中的world
sscanf(“hello, world”, "%*s%s", buf);
printf("%s\n", buf);
结果为:world
7、分隔字符串2012:08:18
int a, b, c;
sscanf("2012:08:18", "%d:%d:%d", &a, &b, &c);
8、分隔字符串2012:08:18 -2012:08:18
char buf1[100] = "", buf2[100] = "";
sscanf(“2010:08:18 -2012:08:18”,"%s -%s", buf1, buf2);
sscanf(“2010:08:18 -2012:08:18”,"%[0-9:] -%[0-9:]", buf1, buf2);
二>格式化输出 sprintf
int printf(const char *format, …);输出到标准输出
int fprintf(FILE *stream,const char *format, …);
输出到文件
int sprintf(char *buf, const char *format, …);
int snprintf(char *buf, size_t n,const char *format, …);
输出到buf指定的内存区域。
注意:
sprintf函数没有指定写入的字符数,可能会造成由buf指向的内存区域溢出。标准I/O库函数
-------------------------------------------------------sscanf----------------------------------------------------------------------------------------------------------------------------------------------------------------------
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char buf[100]="/mnt/ramdisk/172.0.0.1_19700101022912028_无_无_030_1_0_0.jpg";
char array[5];
//取buf中的 030
sscanf(buf,"%*[^_ ]_%*[^_ ]_%*[^_ ]_%*[^_ ]_%[^_ ]",array);// %*[^_ ] _ 跳过 _ 不要_ %[^_ ] 取到_
sscanf(buf,"%*[^_ ]_%*[^_ ]_%*[^_ ]_%*[^_ ]_%3s",array);// %3s 取3个字符
printf("******%s\n",array);
return 0;
}
相关文章推荐
- 浅析APP安全现状,爱加密为APP提供加固方案!
- Uber中国融资规模增至25亿美元 死磕滴滴快的
- Maximum Product Subarray
- 关于栈上的单体结构
- Java操作PDF之itext入门
- iOS---XCode7 + IOS9 问题及解决方案
- Java - What is difference between Enumeration and Iterator?
- JavaScript的DOM编程--08--复习
- intent
- 通过DBMS_SCHEDULER.SET_ATTRIBUTE可以指定执行任务的具体实例
- 公钥与私钥
- 关于指针的三个容易弄混淆的概念及发散
- equals与==的区别。
- 安卓Build中的makefile调用流程
- 日志框架Nlog之将日志输出到文件
- javascript之查找数组中最小/最大的数
- 传感器 - 摇一摇
- STL之七:STL各种容器的使用时机详解
- 单例
- MFC/VC中当鼠标经过按钮等控件时出现文字提示功能