C语言 sscanf 和 sprintf函数的说明和使用
来源:互联网 发布:博德宝橱柜 知乎 编辑:程序博客网 时间:2024/05/16 01:53
sprintf:
int sprintf( char *buffer, const char *format [, argument] … ); 功能:把格式化的数据写入buffer容器中(字符串),返回buffer的长度。这里s为一个buffer,类型为字符数组名或者字符指针(需要初始化)。
sprintf(s, "%d", 123); //产生"123"sprintf(s, "%8d%8d", 123, 4567); //产生:" 123 4567"(123前5个字符宽,4567前4个字符宽)
sprintf(s,"%m.ns",cp);//这里m为m个字符宽,如果输出的多于m个字符,则按实际需要分配宽度,如果少于m个字符则在左边(-m.n时在右边,此时是左对齐)补足不够的字符数的宽度。n为截取cp的前n个字符,后面补'\0'。在格式化到s中时都将加有'\0'结束符。该函数的实际执行过程是:将s和format地址递加,逐个赋值,即:s[i]=format[i](i=0,1,2,……)。
另外,s如果为数组,跟数组的长度没关系,也就是不会出现值溢出问题,因为这里取的只是首地址,字符多于一个时,首地址递加。当然不管用printf还是sprintf打印到屏幕和打印到字符串中,都是遇'\0'结束的。相反,如果字符数组没有'\0',调用printf或者sprintf时会出现未知数据。因为函数是直到遇到空字符结束的。
sscanf:
sscanf() - 从一个字符串中读进与指定格式相符的数据.
函数原型:
int sscanf( string str, string fmt, mixed var1, mixed var2 ... );
int scanf( const char *format [,argument]... );
说明:
sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者以固定字符串为输入源。
其中的format可以是一个或多个 {%[*] [width] [{h | l | I64 | L}]type | ' ' | '\t' | '\n' | 非%符号}
注:
1、 * 亦可用于格式中, (即 %*d 和 %*s) 加了星号 (*) 表示跳过此数据不读入. (也就是不把此数据读入参数中)
2、{a|b|c}表示a,b,c中选一,[d],表示可以有d也可以没有d。
3、width表示读取宽度。
4、{h | l | I64 | L}:参数的size,通常h表示单字节size,I表示2字节 size,L表示4字节size(double例外),l64表示8字节size。
5、type :这就很多了,就是%s,%d之类。
6、特别的:%*[width] [{h | l | I64 | L}]type 表示满足该条件的被过滤掉,不会向目标参数中写入值
支持集合操作:
%[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)
%[aB'] 匹配a、B、'中一员,贪婪性
%[^a] 匹配非a的任意字符,贪婪性
注意:在读入的字符串是空字符串时,sscanf函数并不改变待读入到的字符串的值。
- C语言 sscanf 和 sprintf函数的说明和使用
- C语言sscanf和sprintf函数
- c语言函数sscanf()和sprintf()
- c语言中sscanf()和sprintf()函数的用法
- C语言 sscanf,sprintf函数 使用总结
- 【C】C语言中的sprintf和sscanf
- sscanf 和sprintf 函数
- sscanf() 和 sprintf() 函数
- C语言sscanf和sprintf的用法及实例
- sscanf和sprintf使用
- sscanf函数和sprintf函数的用法
- sprintf函数和sscanf函数的区别
- sscanf和sprintf函数的用法
- sscanf和sprintf()函数使用说明
- sscanf和sprintf()函数使用说明
- sscanf和sprintf()函数使用说明
- C语言sprintf与sscanf函数总结及fscanf,sscanf,fprintf,sprintf之间的区别
- sprintf(),sscanf()函数的使用
- 解决Android加载图片时内存溢出的问题
- java同步工具类之CountDownLatch
- js中substring()和substr
- 简单实现基于TCP的Socket多线程通信
- SoapUI自动化--Groovy脚本常用操作
- C语言 sscanf 和 sprintf函数的说明和使用
- python如何将数组分成几个区间,取每个区间的最大值存到另一个数组里
- 解决jquery ajax接收后台返回值出现中文乱码问题
- GCC实现多文件编译,静态库,动态库
- 三、Html常用标签
- MySQL表的四种分区类型
- 1> OpenMP基本概念
- 服务器SSH登陆错误:Write failed: Broken pipe
- 整理牛人看文献的方法