御风灰灰
发布于 2024-07-11 / 43 阅读
0
0

C语言数据类型转换

1. 数据类型转换

使用ato-x和strto-xx转换

1.1 头文件

#include <stdlib.h>

1.2 函数区别:

  1. atol 相对简单,只对字符串简单判断,如果第一个字符是非法字符,返回0,如果前面是有效数值,返回前面的数值,后面非法的不返还。
  2. strtol将字符串转换为长整数,base为进制数, 如果转换成功,endptr指向字符串首地址,反之,则指向第一个非法字符。
  3. ato-x 不会检测错误,也就是errno,而strto-x函数则会触发errno变化

1.3 ato-x函数

名称 含义 相似功能函数
double atof(const char *nptr) 将字符串转换成double值 strtod(nptr, NULL)
int atoi(const char *nptr) 将字符串转换成int值 strtol(nptr, NULL, 10)
long atol(const char *nptr) 将字符串转换成int值 strtol(nptr, NULL, 10)
long long atoll(const char *nptr) 将字符串转换成int值 strtoll(nptr, NULL, 10)

1.4 strto-xx函数

名称 含义
double strtod(const char *nptr, char **endptr) 将字符串转换为double值
float strtof(const char *nptr, char **endptr) 将字符串转换为float值
long double strtold(const char *nptr, char **endptr) 将字符串转换为long值
long strtol(const char *nptr, char **endptr, int base) 将字符串转换为base进制的long值
long long strtoll(const char *nptr, char **endptr, int base) 将字符串转换为base进制的long long值
unsigned long strtoul(const char *nptr, char **endptr, int base) 将字符串转换为base进制的unsigned long值
unsigned long long strtoull(const char *nptr, char **endptr, int base) 将字符串转换为base进制的unsigned long long值

评论