前言
大家好,大家开发过程中,可能会经常遇见各种数据类型的转换,比如常用的字符串转整形、浮点型、等等,今天就给大家全面的总结了一些常用的数据类型转化。
- atoi(字符串→整型数据)
- atol(字符串→长整型数据)
- atof(字符串→浮点型数据)
- strtol(字符串→长整型数据)
- strtoll(字符串→长长整型数据)
- strtod(字符串→浮点型数据)
- gcvt(浮点型→字符串)
- toascii(整型→ASCII码)
- toupper(小写字母→大写字母)
- tolower(大写字母→小写字母)
atoi、ato、atof(字符串→整型、长整型、浮点型)
头文件:#include<stdlib.h>
函数原形:int atoi(const char *str);
long atol(const char *str);
double atof(const char *str);
函数说明:扫描参数str字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,遇到非数字或'\0'结束转换。
注意:atoi 不会检查整数溢出,也不会处理空指针或非数字字符。
例程:
strtol、strtoll、strtod(字符→长整型、长长整型、浮点型)
头文件:#include<stdlib.h>
函数原形:long int strtol(const char *str, char **endptr, int base);
long long int strtoll(const char *str, char **endptr, int base);
double strtod(const char *str, char **endptr);
函数说明:
strtol()会将参数str字符串根据参数base来转换成长整型数。参数base范围从2至36,或0。参数base代表采用的进制方式,如base 值为10则采用10进制,若base值为16则采用16进制等。当base值为0 时则是采用10进制做转换,但遇到如'0x'前置字符则会使用16进制 做转换。若参数endptr不为 NULL,则会将遇到不合条件而终止的str中的字符指针由endptr返回。
strtod()函数扫描参数str字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,到出现非数字或'\0'时结束转换。若endptr不为NULL,则会将遇到不合条件而终止的str中的字符指针由endptr传回。
例程:
gcvt(浮点型→字符串 四舍五入)
头文件:#include<stdlib.h>
函数原形:char *gcvt(double value, int ndigit, char *buf);
函数说明:参数value转换成ASCII码字符串,参数ndigit表示显示的位数。gcvt()与ecvt()和fcvt()不同的地方在于,gcvt()所 转换后的字符串包含小数点或正负符号。若转换成功,转换后的字符串会放在参数buf指针所指的空间。
例程:
toascii(整型→ASCII码)
头文件:#include<ctype.h>
函数原形:int toascii(int c)
函数说明:toascii()会将参数c转换成7位的unsigned char值,第八位则会被 清除,此字符即会被转成ASCII码字符。
toupper、tolower(大小写字母转化)
头文件:#include<ctype.h>
函数原形:int toupper(int c);
int tolower(int c);
函数说明:将c转化成大小写字母
例程: