C语言数值和字符串的相互转换

1、数值转换为字符串

(1)整数转换为字符串

  • itoa():将整型值转换为字符串

char *itoa (int value, char *str, int base);

    int value为被转换的整数,char *str为转换后储存的字符数组,int base为转换进制数,如2,8,10,16 进制等,大小应在2-36之间。返回指向str的指针

    但是,itoa()是一个非标准的C/C++语言函数,不能被所有编译器使用。大多数Windows编译器中,C语言包含在头文件<stdlib.h>,C++包含在头文件<cstdlib>。

  • sprintf():把格式化的数据写入某个字符串中

int sprintf(char *string, char *format [,argument,...]);

    返回以format为格式,argument为内容的结果写入string字符串的字节数,结束字符‘\0’不计入内。

    sprintf()是一个字符串格式化命令,包含在头文件<stdio.h>中。如果要将整数转换为字符串,则可以写成:sprintf(str, " %d" , num);

(2)浮点数转换为字符串

  • ecvt():将双精度浮点型值转换为字符串,转换结果中不包含小数点或正负号。

char *ecvt(double value, int ndig, int *dec, int *sign);

    将浮点数value存储的有效数字位数ndig转换成字符串(超过位数的四舍五入,不超过的补0),其中不包括小数点和正负号。dec:返回小数点的位置,sign:返回符号,0表示正数,不为0表示负数。例如:char *s = ecvt(var, 5, &dec, &sign);

  • fcvt():把一个浮点数转换为字符串

    用法同ecvt(),但fcvt()中的ndig是小数点后面的位数。

  • gcvt():将双精度浮点型值转换为字符串,转换结果中包含小数点或正负号。

char *gcvt(double number, size_t ndigits, char *buf);

    将浮点数number转换成字符串,参数ndigits 表示显示的位数。将转换后的字符串存入buf 指针所指的空间。

2、字符串转换为数值

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

(1)字符串转换为整数

    atoi()、atol()、strtol()、stroul()函数支持把字符串转换为不同类型的整型值,包含在头文件<stdlib.h>中。基本用法为:

int atoi(const char *str)

    把参数 str 所指向的字符串转换为一个相应类型整数。

  • atoi():将字符串转换成整型数    

  • atol():将字符串转换成长整型数

  • strtol():将字符串转换成长整型数

  • strtoul():将字符串转换成无符号长整型数

(2)字符串转换为浮点数

  • atof():将字符串转换成浮点型数

double atof(const char *str)

    把参数 str 所指向的字符串转换为一个双精度浮点数。

  • strtod():将字符串转换成浮点数

double strtod(const char *str, char **endptr)

    把参数 str 所指向的字符串转换为一个双精度浮点数。endptr 是对类型为 char* 的对象的引用,如果该参数位置不为空,则指向 str 中数值后的下一个字符。

参考文章:

C语言中将数字转换为字符串的方法_C语言中文网

c语言字符串 数字转换函数大全 - 心心程序博客 - 博客园

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值