C语言把数值转换为字符串的函数

C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。

1.int/float to string/array:
C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串,下面列举了各函数的方法及其说明。
● itoa():将整型值转换为字符串。
● ltoa():将长整型值转换为字符串。
● ultoa():将无符号长整型值转换为字符串。
● gcvt():将浮点型数转换为字符串,取四舍五入。
● ecvt():将双精度浮点型值转换为字符串,转换结果中不包含十进制小数点。
● fcvt():指定位数为转换精度,其余同ecvt()。

除此外,还可以使用sprintf系列函数把数字转换成字符串,其比itoa()系列函数运行速度慢

2. string/array to int/float
C/C++语言提供了几个标准库函数,可以将字符串转换为任意类型(整型、长整型、浮点型等)。
● atof():将字符串转换为双精度浮点型值。
● atoi():将字符串转换为整型值。
● atol():将字符串转换为长整型值。
● strtod():将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字。
● strtol():将字符串转换为长整值,并报告不能被转换的所有剩余数字。
● strtoul():将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字。

gcvt():将浮点数转换字符串,取四舍五入。

#include<stdio.h>
#include<stdlib.h> 
int main()
{
    int num_int = 95;
    double num_double = 95.12f;
    char str_int[30];
    char str_double[30];
    
    gcvt(num_double, 8, str_double);//8表示精确位数。
    printf(“str_double :%s\n”, str_double);
}

程序输出结果:str_double :95.120003

fcvt 把一个浮点数转换为字符串

【函数原型】

char *fcvt(double value, int ndigit, int *decpt, int *sign);

【参数】

value:要转换的浮点数,输入参数

ndigit:取小数的位数,输入参数

decpt:表示小数点的位置,输出参数

sign:表示value的符号,0为正数,1为负数,输出参数
【代码示例】

int _tmain(int argc, _TCHAR* argv[])
{    
    double a = 1234.987654321;
    double b = -12345.123456189;
    char *ptr;
    int decpt, sign;
 
    ptr = fcvt(a, 4, &decpt, &sign);
    printf(“a’s decpt: %d\n”, decpt);        //输出结果:a’s decpt: 4
    printf(“a value=%c%s\n”, sign==0?’ ‘:’-‘, ptr);//输出结果:a value= 12349877
 
    ptr = fcvt(b, 6, &decpt, &sign);
    printf(“b’s decpt: %d\n”, decpt);//输出结果:/b’s decpt: 5
    printf(“b value=%c%s\n”, sign==0?’ ‘:’-‘, ptr);//输出结果:b value=-12345123456
 
    return 0;
}

 

    原文作者:飘一点红
    原文地址: https://blog.csdn.net/qq_21794981/article/details/120506076
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞