首页 > 编程语言 > 详细

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

时间:2020-07-08 21:09:00      阅读:89      评论:0      收藏:0      [点我收藏+]

博主原文

 

C语言itoa()函数和atoi()函数详解(整数转字符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():将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字。

 
这里写一个常用的转换使用方式
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<stdio.h>
#include<stdlib.h>
void num_to_str()
{
    int a = 10086;
    char buff[10] = {0};
    itoa(a,buff,10);//将a以10进制的形式写入buff中
    printf("%s\n", buff);      
}
void str_to_num()
{
    char *p = "10001";
    printf("%d\n", atoi(p));//atoi直接返回整形转换后的数据
}
int main()
{
    num_to_str();
    str_to_num();
    return 0;
}

这里需要注意的是,atoi和itoa均为windows系统下stdlib.h文件内的库函数,因此,如果在Linux系统即使包含stdlib.h这个头文件,编译时仍然会提示这两个函数没有定义过。

类似这样

技术分享图片

 

 

运行结果

技术分享图片

 

 

 在Linux系统下要将一个数字转换为字符串最好使用sprintf函数

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<unistd.h>
#include<iostream>
using namespace std;
void num_to_str()
{
    int a = 10086;
    char buff[10] = {0};
        char *p = "10001";
    sprintf(buff, "%d", a);//第一个参数为要写入字符串的地址,第二个参数为第三个参数的类型,第三个参数为要写入的数据
    printf("%s\n", buff);
        sprintf(buff, "%s", p);//这步可以看出sprintf的写入方式为清空写入
    printf("%s\n", buff);
}
int main()
{
    num_to_str();
    return 0;
}
    

 运行结果

技术分享图片

 

 //////////////////////////////////////////////////////

最后贴一个自己写的将字符串转换为数字的函数 myatoi

 


---------------------
作者:C_hp
来源:CNBLOGS
原文:https://www.cnblogs.com/area-h-p/p/12011816.html
版权声明:本文为作者原创文章,转载请附上博文链接!

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

原文:https://www.cnblogs.com/xinkwg/p/13268878.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!