巧用vsprintf将浮点数等转化字符串

直接上代码

#include <stdarg.h>

char buffer[80];

int vspf(char *fmt, ...)

{

    va_list argptr;

    int cnt;

    va_start(argptr, fmt);

    cnt = vsprintf(buffer, fmt, argptr);

    va_end(argptr);

    return(cnt);

}

int main(void)
{
    int inumber = 30;

    float fnumber = 90.0;

    char string[4] = "abc";

    vspf("%d %f %s", inumber, fnumber, string);

    printf("%s\n", buffer);

}

关于vsprintf函数的具体代码可以参考

http://files.cnblogs.com/files/libra13179/printf.rar

输出的效果如下

30 90.000000 abc
时间: 2024-12-20 02:05:36

巧用vsprintf将浮点数等转化字符串的相关文章

整数(浮点数)转字符串

在实际项目中,我们不可避免的遇到需要将整数(浮点数)转换为字符串输出(保存为文件或者显示打印).这是一个很常见的算法,标准C库甚至提供了诸如itoa,ltoa,之类的函数供大家调用.但是,在一些特殊场合,比如对功耗要求比较苛刻的场合,则对转换速度提出了要求.在单片机应用中,很多mcu没有除法器,和除法指令,我们就得变通一下. 1. 浮点数转字符串 我们知道,在单片机中,浮点运算是比较费时的运算.我们就可以根据自己的精度要求,先将浮点数转换为整数,在进行整数运算,则会节约不少运算时间.比如我们在数

浮点数转换成字符串函数

sprintf函数太大,在STM8上面根本不敢用,动不动就.text overflow.为了将采集的数值通过串口上传到计算机,只能自己写了一个浮点数转换成字符串的函数: #include <stdio.h> #include <stdint.h> static char table[]={'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'}; void num2char(char *str, double number, uint8_t

巧用React Fiber中的渲染字符串新功能

虽然React Fiber还没有正式发布,但是我们已经可以预先领教其带来的新的编程模式了. 在React Fiber中,render函数可以直接返回一个字符串了,换言之,一个组件可以直接渲染为一个字符串,而不是必须渲染为一个HTML模样的物体. 举个例子,下面这个控件LongString,显示一个input和一个p,p中文字可以是很长的字符串,相当于一个模板,在input中输入的字符串会用来填补p中的模板面. 代码如下. import React from 'react'; class Long

巧用java的 MessageFormat来拼字符串

该类可以进行占位符填写如下String msg = "啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊{0}{1}{2}{3}{4}{5}{6}{7}{8}哦哦哦哦哦哦哦哦哦哦哦哦"; Object [] array = new Object[]{"A","B","C","D","E","F","G","H","I",}

(转)关于BigDecimal 转化字符串toPlainString()和toString()的区别

对于  BigDecimal b ;     (b=(0.4321)^ 20)String s = b.toPlainString() ;System.out.println(s) ; 输出为:0.00000005148554641076956121994511276767154838481760200726351203835429763013462401 若String s = b.toString() ;输出为:5.14855464107695612199451127676715483848

C语言atof()函数:将字符串转换为double(双精度浮点数)

头文件:#include <stdlib.h> 函数 atof() 用于将字符串转换为双精度浮点数(double),其原型为:double atof (const char* str); atof() 的名字来源于 ascii to floating point numbers 的缩写,它会扫描参数str字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果

一个Android实数转化二进制的计算器

导言: 这是我自己写的第一个小应用,没有什么优化,没有追求图标好看,就是搜索来的代码堆砌,等将来学完设计模式还有重构的话可能还会来改. 我觉得这个里面最考验我的就是小数转化为二进制的问题了,当然整数转二进制很容易,不过因为浮点数在计算机中的储存方式并不是正常人类思维的方式,因此我费了很大的力气才尽可能的实现了这样的模块.希望看到的读者有好的方法或是我的代码逻辑有错误,请不吝赐教,先谢过. 开始,新建项目-B2D(起反了)....一路默认就是了 构建界面 步骤1-声明应用的字符串在strings.

Java 中浮点数---------BigDecimal和double(初探)

为什么要使用 bigdecimal? 借用<Effactive Java>这本书中的话,float和double类型的主要设计目标是为了科学计算和工程计算.他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的.然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合.但是,商业计算往往要求结果精确,这时候BigDecimal就派上大用场啦. BigDecimal简介 BigDecimal 由任意精度的整数非标度值 和32 位的整数标度 (scale

Lua中的字符串函数库

字符串库中的一些函数是非常简单的: string.len(s)          返回字符串s的长度:string.rep(s, n)      返回重复n次字符串s的串:你使用string.rep("a", 2^20)可以创建一个1M bytes的字符串(比如,为了测试需要):string.lower(s)       将s中的大写字母转换成小写(string.upper将小写转换成大写).如果你想不关心大小写对一个数组进行排序的话,你可以这样: