sprintf和snprintf测试

本文介绍了C语言中`sprintf`和`_snprintf`函数的使用,特别是它们在处理数组越界和数据转换时的行为。通过示例代码展示了`_snprintf`在不同长度限制下如何处理整型数据,并强调了正确处理截断和添加终止符的重要性。
摘要由CSDN通过智能技术生成

1、  Sprintf

Char pszInfoBuf[50];

Sprint(pszInfoBuf, “***File:%sLine%d***”,__FILE__, __LINE__);                   //__FILE__过长,pszInfoBuf装不下程序异常。输出数组越界

2、  Snprintf/_snprintf(将整型数据转换为字符型数据)

在VC,VS下面只能用_snprintf,经过测试发现_snprintf()函数不会在转换以后添加’\0’标志,测试代码如下

char sa[5] = {1, 2, 3, 4, 5};

   int b = 54321;

 

         _snprintf(sa,3, "%d", b);        //sa的值5,4,3,45

         _snprintf(sa,5, "%d", b);                   //sa的值54,3,2,1

   _snprintf(sa, 6, "%d", b);                   //sa的值5,4,3,2,1

printf(sa);         

注意:_snprintf使用时”%d”的数据类型是b的数据类型

Sprint/_sprintf作用主要有以下两点:

第一:将整型数据转换为字符串数据

第二:将字符串数据转换为特定格式的字符串数据

_snprintf正确使用方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值