sscanf()和sprintf()的效率如何?

liuheping233 2010-08-02 05:12:19
经常操作的把字符串变数字,把数字变字符串
sscanf和sprintf显然很方便
但是这两个库函数和自己写一个for循环到底谁快呢?
求解答
...全文
305 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackyjkchen 2010-08-02
  • 打赏
  • 举报
回复
格式化函数的特点是全能,缺陷就是效率,通常,设计大长度进制转换等状况,我会是用自己写的函数


void ByteToHex(const Byte *input,Int32 inlen,Byte *output)
{
Int32 i = 0;
while(i < inlen)
{
*output++ = tohex[input[i] >> 4];
*output++ = tohex[input[i] & 0x0F];
++i;
}
}

void HexToByte(const Byte *input,Int32 inlen,Byte *output)
{
Int32 i = 0,q = 0;
for(q=0; q<inlen; q+=2)
{
output[i] = CharToNum(input[q]) << 4;
output[i++] |= CharToNum(input[q+1]);
}
}


如果是小长度,但复杂的格式化,我用库函数
失落的凡凡 2010-08-02
  • 打赏
  • 举报
回复
效率相差应该不大。对于这种性上没有数量级的差别, 我倾向使用现成的东西。
healer_kx 2010-08-02
  • 打赏
  • 举报
回复
其实做的事情都差不多,而且实现上,不涉及太巧妙的算法,理论上差不多。
不过我个人倾向于使用后者。
ayw215 2010-08-02
  • 打赏
  • 举报
回复
没比较过性能
不过感觉,如果不考虑安全因素的话,sscanf和sprintf应该会效率好点

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧