LinuxC与语言字符转换函数
/* * File: main.cpp * Author: chenqiang * * Created on April 2, 2011, 11:47 AM */ #include<stdio.h> #include<stdlib.h> #include <ctype.h> int main() { //atof(const char *nptr)将字符串转换成浮点型数,字符串,跳过前面的空格字符(包括\t,\f等), //遇到数字或正负符号开始转换,遇到非数字字符或字符串结束时结束转换,如果遇到的第一个非空格字符不是 //数字或正负符号,则结果为零 printf("atof %.2f\n", atof("-100.23") + atof(" 200e-2")); //strtod(const char *nptr,char **endptr)将字符串转换为浮点型数,若endptr不为空, //则会将遇到不合条件而终止的nptr中的字符指针有endptr传回。 printf("strod %.3lf\n", strtod("123.456", NULL)); //atoi(const char *nptr)将字符串转换为整型数,扫描字符串,跳过前面的空格字符(包括\t,\f等), //遇到数字或正负符号开始转换,遇到非数字字符或字符串结束时结束转换,如果遇到的第一个非空格字符不是 //数字或正负符号,则结果为零 printf("atoi %d\n", atoi("-100.23") + atoi(" 200e-2")); //atol(const char *nptr)将字符串转换为长整型数,扫描字符串,跳过前面的空格字符(包括\t,\f等), //遇到数字或正负符号开始转换,遇到非数字字符或字符串结束时结束转换,如果遇到的第一个非空格字符不是 //数字或正负符号,则结果为零 printf("atol %ld\n", atol("1000000000") + atol(" 234567890")); //strtol(const char *nptr,char **endptr,int base)将字符串转换为长整型数 //参数base范围从2至36,或0,代表进制,为0代表10进制, printf("strtol %ld\n", strtol("2147483648", NULL, 10)); printf("strtol %ld\n", strtol("1000000000", NULL, 2)); printf("strtol %ld\n", strtol("-fff", NULL, 16)); printf("strtol %ld\n", strtol("0xfff", NULL, 16)); //strtoul(const char *nptr,char **endptr,int base)将字符串转换为无符号长整型数 printf("strtoul %ld\n", strtoul("2147183648", NULL, 10)); //char *ecvt(double number,int digits,int *decpt,int *sign)将浮点型数转换成字符串 //取四舍五入,参数digits表示显示的位数,若成功,参数decpt指针所指的变量会返回数值中小数点的地址 //参数sign指针所指的变量则代表数值的正或负,若数值为正,则返回0,否则返回1 int decpt, sign; printf("ecvt %s\n", ecvt(123.4, 5, &decpt, &sign)); printf("decpt = %d,sign = %d\n", decpt, sign); printf("ecvt %s\n", ecvt(-1234.56, 5, &decpt, &sign)); printf("decpt = %d,sign = %d\n", decpt, sign); //char *fcvt(double number,int digits,int *decpt,int *sign)将浮点型数转换成字符串 //取四舍五入,参数digits表示小数点后显示的位数,若成功,参数decpt指针所指的变量会返回数值中小数点的地址 //参数sign指针所指的变量则代表数值的正或负,若数值为正,则返回0,否则返回1 printf("fcvt %s\n", fcvt(123.4, 5, &decpt, &sign)); printf("decpt = %d,sign = %d\n", decpt, sign); printf("fcvt %s\n", fcvt(-1234.56, 2, &decpt, &sign)); printf("decpt = %d,sign = %d\n", decpt, sign); //char *gcvt(double number,size_t ndigits,char *buf)将浮点型数转换成字符串 //取四舍五入参数ndigits表示显示的位数,gcvr()与ecvt()和fcvt()不同的地方在于,gcvt()所转换的字符串包含小数点或正负符号 char bufgcvt[20]; printf("gcvt %s\n", gcvt(-123.45, 5, bufgcvt)); //toascii(int i),将参数i转换成7位的unsigned char 值,第八位被清除,此字符即会被转换成ASCII码字符。 printf("after toascii() 217 is %c\n",toascii(217)); //tolower(int c),toupper(int c)将字母转换为小写\大写 printf("A after tolower %c\n",tolower('A')); printf("a after toupper %c\n",toupper('a')); return 0; }
posted on 2011-04-02 13:33 chenqiangjsj 阅读(341) 评论(0) 编辑 收藏 举报