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编辑  收藏  举报

导航