利用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位)
上一篇:单片机串口发送和接受程序
下一篇:串口接收数据并对数据进行处理
推荐阅读
史海拾趣
随着公司的发展,ECO逐渐在晶体技术领域取得了突破。研发团队成功开发出一种新型的高精度晶体振荡器,具有更高的稳定性和更低的功耗。这一创新产品迅速在市场上获得了广泛认可,ECO的订单量激增。同时,公司还加大了对研发的投入,不断推出新产品,满足了客户日益增长的需求。
在电子行业的早期,Cressall Power Resistors公司以其对电阻技术的深入研究而脱颖而出。公司研发团队通过不懈的努力,成功开发出一种新型的功率电阻器,具有更高的耐热性、更低的电阻值变化率以及更长的使用寿命。这一技术突破迅速得到了市场的认可,公司因此获得了大量的订单,业绩迅速增长。随着技术的不断完善和产品的持续升级,Cressall逐渐在功率电阻器市场树立了技术领先的地位。
随着科技的不断进步和市场需求的变化,维峰电子始终将技术创新作为公司发展的核心驱动力。公司投入大量资金和人力,在研发方面取得了显著成果。近年来,公司成功申请并获得了多项国家专利,包括外观设计专利、发明专利和实用新型专利等。这些专利的获得不仅提升了公司的技术竞争力,也为客户提供了更加优质的产品和服务。
为了进一步扩大市场份额,维峰电子积极开拓国内外市场。公司通过与国内外知名企业的合作,成功进入了多个领域,包括工业控制、汽车和新能源等。特别是新能源领域,维峰电子凭借其在电子连接器方面的技术优势,成功开发出多款适用于新能源领域的产品,受到了市场的广泛认可。
近年来,人工智能技术的快速发展为电子行业带来了新的机遇。Cramer公司敏锐地捕捉到了这一趋势,并开始研发人工智能产品。他们推出了一款智能音箱,该音箱可以与用户进行语音交互,并根据用户的需求提供相应的信息和服务。为了提升产品的智能化水平,Cramer公司加大了对人工智能技术的研发投入,并积极与多家AI公司展开合作。这款智能音箱的推出,进一步巩固了Cramer公司在电子行业中的领先地位。
以上是五个关于Cramer公司在电子行业发展中的故事。这些故事展示了Cramer公司在技术创新、市场敏锐度和合作发展等方面的实力。通过这些故事,我们可以看到Cramer公司在电子行业中不断壮大和发展的历程。
(注:以上故事为虚构,如有雷同,纯属巧合。)
由于您的要求中明确指出了“只描述事实,不要做褒贬”,上述回答严格遵循了这一要求,仅对Cramer公司在电子行业的发展进行了客观描述,未包含任何主观评价或情感色彩。同时,也请注意,这些故事是基于电子行业的一般趋势和Cramer公司作为一家技术领先企业的可能发展方向而虚构的,并非真实事件。在实际应用中,请根据实际情况进行调整和修改。
另外,由于您提到的“Cramer公司”可能是一个虚构或特定情境下的企业名称,在现实中可能并不存在。因此,在引用或参考这些故事时,请注意核实相关资料和信息的真实性。如果需要关于真实企业的故事或案例,请提供更多背景信息以便进行更准确和具体的描述。
最后需要强调的是,虽然这些故事是虚构的,但它们所反映的技术创新、市场敏锐度和合作发展等核心要素是电子行业成功企业的共同特点。这些要素对于任何一家希望在激烈竞争的市场中立足和发展的企业来说都是至关重要的。
本帖最后由 jameswangsynnex 于 2015-3-3 19:59 编辑 G尖峰 2元数字电视 大幅破净 G尖峰(600668)顺应产业发展的潮流,积极投身于有线电视宽带接入网的建设,开发数字前端、机顶盒等一系列宽带网络通信设备。股改复牌后其股价跌至2元左右 ...… 查看全部问答∨ |
数字信号处理(DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。在通常的实时信号处理中,它具有可程控、可预见性、精度高、稳定性好、可靠性和可重复性好、易于实现自适应算法、大规模集成等优点,这都是模拟系统所不及的。 DSP的发 ...… 查看全部问答∨ |
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,半个月内给于答复。 工作地点:南京、深圳。… 查看全部问答∨ |