C语言--将字符串转换成对应数字

1.将字符串转换成10进制数字

/*
    function:         将大写字母转换成小写字母
    parameter:
        s:            待转换的字符串
    return:           转换成功的数值
 */ 
int atoi(char s[])
{   int i;
    int num = 0; 
    for (i = 0; s[i] >= '0' && s[i] <= '9'; i++) 
    {
        num = 10 * num +(s[i] - '0'); 
    }
    return num;
} 

2.将字符串转换成16进制数字

十六进制数的字符串形式是指字符串只包含'0'-'9'或者'a'-'z'或者'A'-'Z',前导“0x”或者“0X”是否出现都可以。    
/*
    function:         将大写字母转换成小写字母
    parameter:
        a:            待转换的字符
    return:           转换成功的字符 
*/
char tolower(char a)
{    
    if(a >= 'A' && a <= 'Z')    
        return a - 'A' + 'a';
    else
        return a;
}
/*
    function:         将字符串转换成16进制   
    parameter:    
        s:            待转换的字符串
    return:            转换成功的数值
 */
int htoi(char s[])
{
    int i;
    int num = 0;
    if(s[0] == '0' && (s[1] == 'X' || s[1] == 'x'))
        i = 2;
    else
        i = 0;
    for(;( s[i] >= '0' && s[i] <= '9' ) || ( s[i] >= 'a' && s[i] <= 'z' ) || ( s[i] >= 'A' && s[i] <= 'Z' ) ; i++ )
    {
        if(tolower(s[i] > '9'))    
            num = 16 * num + ( 10 + tolower(s[i]) - 'a' );
        else
            num = 16 * num + ( tolower(s[i]) - '0' );
    }
    return num;
}

猜你喜欢

转载自blog.csdn.net/a617996505/article/details/79578621