C语⾔把数字转换为字符串的函数
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():将字符串转换为⽆符号长整型值,并报告不能被转换的所有剩余数字。
这⾥写⼀个常⽤的转换使⽤⽅式
#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直接返回整形转换后的数据
c语言定义一个字符串}
int main()
{
num_to_str();
str_to_num();
return 0;
}
这⾥需要注意的是,atoi和itoa均为windows系统下stdlib.h⽂件内的库函数,因此,如果在Linux系统即使包含stdlib.h这个头⽂件,编译时仍然会提⽰这两个函数没有定义过。
类似这样
运⾏结果
在Linux系统下要将⼀个数字转换为字符串最好使⽤sprintf函数
#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;
}
运⾏结果
//////////////////////////////////////////////////////
最后贴⼀个⾃⼰写的将字符串转换为数字的函数

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。