历史上的今天

今天是:2024年09月07日(星期六)

2019年09月07日 | 单片机中Sprint函数

发布者:Qilin520 来源: eefocus关键字:单片机  Sprint函数  字符串 手机看文章 扫描二维码
随时随地手机看文章

利用sprintf()函数转化为字符串发出去


最近在做项目 ,用到了好几次sprint,这个函数功能甚是强大啊。是转换成字符串的利器。下面是我在网上找到的,感觉比较好的总结。感谢各位网友,大家一起进步!

sprintf函数的用法

1、该函数包含在stdio.h的头文件中。

2、sprintf和平时我们常用的printf函数的功能很相似。sprintf函数打印到字符串中,而printf函数打印输出到屏幕上。sprintf函数在我们完成其他数据类型转换成字符串类型的操作中应用广泛。

3、sprintf函数的格式:

int sprintf( char *buffer, const char *format [, argument,...] );

除了前两个参数固定外,可选参数可以是任意个。buffer是字符数组名;format是格式化字符串(像:"%3d%6.2f%#x%o",%与#合用时,自动在十六进制数前面加上0x)。只要在printf中可以使用的格式化字符串,在sprintf都可以使用。其中的格式化字符串是此函数的精华。

4、char str[20];

  double f=14.309948;

sprintf(str,"%6.2f",f);

可以控制精度

5、char str[20];

  int a=20984,b=48090;

sprintf(str,"%3d%6d",a,b);

str[]="20984 48090"

可以将多个数值数据连接起来。

6、char str[20];

char s1={'A','B','C'};

char s2={'T','Y','x'};

sprintf(str,"%.3s%.3s",s1,s2);

可以将多个字符串连接成字符串

%m.n在字符串的输出中,m表示宽度,字符串共占的列数;n表示实际的字符数。%m.n在浮点数中,m也表示宽度;n表示小数的位数。

7、可以动态指定,需要截取的字符数

char s1={'A','B','C'};

char s2={'T','Y','x'};

sprintf(str,"%.*s%.*s",2,s1,3,s2);

sprintf(s, "%*.*f", 10, 2, 3.1415926); 

8、sprintf(s, "%p", &i);

可以打印出i的地址

上面的语句相当于

sprintf(s, "%0*x", 2 * sizeof(void *), &i);

9、sprintf的返回值是字符数组中字符的个数,即字符串的长度,不用在调用strlen(s)求字符串的长度


单片机中Sprint函数:

说明1:使用该函数时必须包含stdio.h头文件,否则容易卡死程序

说明2:sprintf与printf函数的区别:二者功能相似,但是sprintf函数打印到字符串中(将数值转换成对应字符串形式,就是变换成ASCALL码),而printf函数打印输出到屏幕上。在单片机中将数值转换成字符串是sprintf函数最广的用途。


Sprint函数具体形式: int sprintf( char *buffer, const char *format, [ argument,...] );

解释:整形输出 sprintf(输出数组地址,<格式字符串>,参量表……)


注:只要在printf中可以使用的格式化字符串,在sprintf都可以使用。(和printf用法一致)


举例:在单片机程序中将156.23456转换成ascall码 

有如下步骤:

1. 令一个浮点数变量temp=156.23456;

2. 写函数sprintf(char *buffer,”%9.5f”,temp),即可将数存在buffer数组中

此例注:格式字符%m.nf中m代表输出数值整体位数(包含小数点,占一位),n是精度(小数点后保留n位)



关键字:单片机  Sprint函数  字符串 引用地址:单片机中Sprint函数

上一篇:单片机串口发送和接受程序
下一篇:串口接收数据并对数据进行处理

推荐阅读

近日,由科鑫光电提供的ipad无线智能可视化操控大屏幕显示解决方案,在四川泸州顺利完工,交付甲方使用。让第一次接触体验到智派APP控制led大屏幕这种方式的使用方也着实大吃了一惊,怎么一台小ipad平板电脑就可以这样轻轻松松、简简单单把led大屏幕给控制了呢。 此次项目大屏幕是选配的P2.5型号的室内led全彩屏产品,控制部分配置的是科鑫光电独家出品的...
使用接收中断,将接收到的字符再发送出去。每次接收到字符之后都会退出低功耗模式,从而在主函数中将接收到的字符再发送出去。/********************************************** *程序描述:单片机的P3.4、P3.5作为串口接收字符,将接受到的字符再发送出去 ***********************************************/#include <msp430x14x.h>void usartInit(vo...
(1)控制功能:①启动/停止:秒表和时钟选择功能的总开关允许位。没按或偶次按下,关闭时钟和秒表功能选择。单次按下,允许进行秒表和时钟功能选择。②暂停:秒表或时钟的停止信号。任何时候按下按钮停止秒表倒计时或停止时钟计时和撤销报警信号。③复位:秒表和时钟复位信号。任何时候按下按钮秒表显示或时钟显示恢复初始状态:00.00.00.0 。(2)调节功...
据外媒报道,当地时间9月6日,多摄像头3D视觉技术领先提供商NODAR宣布与英纳法汽车天窗系统集团(Inalfa Roof Systems Group)建立了合作,后者是北京海纳川汽车部件股份有限公司旗下的全球先进工程公司。此外,NODAR还未展示一种基于摄像头的高性能3D视觉技术,而且是汽车行业领先OEM的未来汽车天窗系统的集成式方案。在于当地时间9月7日至12日举行的I...

史海拾趣

问答坊 | AI 解惑

G尖峰(600668)2元数字电视 大幅破净

本帖最后由 jameswangsynnex 于 2015-3-3 19:59 编辑  G尖峰 2元数字电视 大幅破净    G尖峰(600668)顺应产业发展的潮流,积极投身于有线电视宽带接入网的建设,开发数字前端、机顶盒等一系列宽带网络通信设备。股改复牌后其股价跌至2元左右 ...…

查看全部问答∨

DSP基础知识集锦之四 数字信号处理

数字信号处理(DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。在通常的实时信号处理中,它具有可程控、可预见性、精度高、稳定性好、可靠性和可重复性好、易于实现自适应算法、大规模集成等优点,这都是模拟系统所不及的。 DSP的发 ...…

查看全部问答∨

郁闷,今天领导一大早脸色很不爽

五一放假归来,发现领导脸色铁青,很不爽。…

查看全部问答∨

会汇编语言对学习基于ARM的嵌入式编程有帮助吗?

会汇编语言对学习基于ARM的嵌入式编程有帮助吗? 谢谢~~…

查看全部问答∨

linux tftp启动的问题

rpm -q 存在tftp 和 tftp-server 进入vi /etc/xinetd.d/tftp 都配好了,disable =no 服务地址 /tftpboot 加了-s -c 也启动了xinetd,可就是启动不了tftp,测试的时候总是超时 在服务里tftp那项“开始”和“停止”都是灰的。也就是说没启动或者 ...…

查看全部问答∨

请问有需要CSR BlueLab蓝牙开发资料、SPI仿真器(SPI下载器)的吗?

你需要CSR 蓝牙开发的SPI仿真头(下载线)的吗? 具有UART-232转接口、复位键、HOLD键、 兼容1.8V  I/O口,串口收发可以倒换或短接,面积小巧、使用方便。 支持CSR的BlueLab、BlueSuite等工具。 联系 13261620407…

查看全部问答∨

导师要求做个小型嵌入式防火墙,大伙有啥好建议?

天哪,导师要求做个小型嵌入式防火墙。 要能跑UCOS系统。 我想请教各位,能否使用仿真或者什么方法比较快的做出来呢? 急死我了。希望高手赐教指点迷津 本人愿意散分。。。。 救命啊!…

查看全部问答∨

华为招聘(待遇从优):

要求:本科三年工作经验,硕士两年工作经验,电信、通信行业相关。       有意者请将简历发送到songguiyong@huawei.com,半个月内给于答复。 工作地点:南京、深圳。…

查看全部问答∨

100脚的STM32的ALE

看STM32手册有点迷糊,100脚的STM32的ALE,难道接NAND 才有ALE信号…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved