C语言中的类型转换

类型转换 stdlib.h

int/float to string/array

整数转化为字符串 to
a:字符串
i:整型int
l:长整形 long
ul:无符号长整形 unsigned long

小数转化为字符串 cvt (略)
g:浮点数 ,包含小数点
e:双精度浮点数,没有小数点,如果超过value的数字长度不补零。
f:浮点数,没有小数点,如果超过value的数字长度将补零。

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

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

【参数】

int value 被转换的整数
char *string 转换后储存的字符数组
int radix 转换进制数,如2,8,10,16 进制等

【返回值】:返回指向str的指针,无错误返回。

#include <stdlib.h>//cstdlib和stdlib.h都可以
#include <stdio.h>//cstdio和stdio.h都可以
//如果用的是cstdio和cstdlib,要加上 using namespace std;
int main(void)
{
    int number = 123456;
    char string[25];
    itoa(number, string,10);
    printf("integer=%d string=%s\n", number, string);
    return 0;
}

ltoa():将长整型值转换为字符串。

【功能】把value的值转换为以NULL结束的字符串,并把结果存在string中。radix是转换的基数值

char *ltoa(long value,char *string,int radix)

【参数】

value :要转换的数值
string : 转换后指向字符串的指针
radix : 进制

ultoa():将无符号长整型值转换为字符串。

【功能】说明:ultoa函数把 value转换成一个以空字符结尾的radix进制的字符串,并存储在string中(至多33个字节),不执行上溢出检查。radix指出value的基数

char *ultoa(unsigned long value, char *string, int radix);

【参数】

value要转换的数
String 字符串结果
radix : 进制
#include
#include
int main( void )
{
    unsigned long lnumber = 3123456789L;
    char string[25];
    ultoa(lnumber,string,10);
    printf("string = %s unsigned long = %lu\n",string,lnumber);
    return 0;
}

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

ecvt():将双精度浮点型值转换为字符串,转换结果中不包含十进制小数点。

fcvt():指定位数为转换精度,其余同ecvt()。

string/array to int/float

字符串转其他 to
a:字符串 ascii
f:浮点数
i:整型
str:字符串
d:双精度浮点数

atof():将字符串转换为浮点型值。

double atof(const char *nptr);

【函数说明】atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(’\0’)才结束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456或123e-2。
【返回值】:返回转换后的浮点型数。

#include<stdlib.h>
int main()
{
    char*a="-100.23";
    char*b="200e-2";
    double c;
    c=atof(a)+atof(b);
    printf(“c=%.2lf\n”,c);
    return 0;
}

结果为 c=-98.23

atoi():将字符串转换为整型值。

int atoi(const char *str)

【参数】

str:要转换为整数的字符串。

【返回值】

该函数返回转换后的长整数
如果没有执行有效的转换,则返回零

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
   int val;
   char str[20];

   strcpy(str, "98993489");
   val = atoi(str);
   printf("字符串值 = %s, 整型值 = %d\n", str, val);

   strcpy(str, "runoob.com");
   val = atoi(str);
   printf("字符串值 = %s, 整型值 = %d\n", str, val);

   return(0);
}

字符串值 = 98993489, 整型值 = 98993489
字符串值 = runoob.com, 整型值 = 0

atol():将字符串转换为长整型值。

strtod():将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字。

strtol():将字符串转换为长整值,并报告不能被转换的所有剩余数字。

strtoul():将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字。

  • 14
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张先森啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值