C语言:sprintf()—格式数据写入字符串 C语言 基础开发—-目录 一、sprintf()简介 1. 函数原型 2. 参数 string – 这是指向一个字符数组的指针,该数组存储了 C 字符串。format – 格式化字符串,结构与printf函数一样为:%[flags] [width] [.prec] [length] type。[argument]… – 参数表,根据不同的 format 字符串,有不同的参数表。 3. 功能 把格式化的数据写入某个字符串缓冲区。 4. 头文件 #include<stdio.h> 5. 返回值 如果成功,则返回写入的字符总数,不包括字符串追加在字符串末尾的空字符。如果失败,则返回一个负数。 sprintf 返回以format为格式argument为内容组成的结果被写入string的字节数,结束字符‘0’不计入内。即,如果“Hello”被写入空间足够大的string后,函数sprintf 返回5。 二、sprintf() 用法 sprintf函数的功能与printf函数的功能基本一样,只是它把结果输出到指定的字符串中。 1. 把整数打印到字符串中 具体代码如下: 运行结果如下: 2. 控制浮点数打印格式 具体代码如下: 运行结果如下: 3. 连接字符串 sprintf() 的格式控制串中既然可以插入各种东西,并最终把它们“连成一串”,自然也就能够连接字符串。sprintf() 能够一次连接多个字符串(自然也可以同时在它们中间插入别的内容,总之非常灵活)。 具体代码如下: 运行结果如下: 4. 打印地址信息 具体代码如下: 运行结果如下: 5. 利用sprintf 的返回值 sprintf() 返回了本次函数调用最终打印到字符缓冲区中的字符数目。也就是说每当一次sprinf 调用结束以后,你无须再调用一次strlen 便已经知道了结果字符串的长度。 具体代码如下: 运行结果如下: 三、使用sprintf() 常见问题 sprintf() 是个变参函数,使用时经常出问题,而且只要出问题通常就是能导致程序崩溃的内存访问错误,但好在由sprintf 误用导致的问题虽然严重,却很容易找出,无非就是那么几种情况。 缓存区溢出: 第一个参数分配的长度太短了,尽量大一点,打印字符串时,尽量使用”%.ns”的形式指定最大字符数。忘记第一个参数: 低级得不能再低级问题,用printf 用得太惯了。变参对应出问题: 通常是忘记了提供对应某个格式符的变参,导致以后的参数统统错位。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/80189.html