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 阅读(346) 评论(0) 收藏 举报
浙公网安备 33010602011771号