几个常用的数据处理代码

整理几个常用的数据处理代码(C语言)


字符转十六进制

//字符转十六进制
char Char_To_Hex(char ch)
{
    char C ;

    if((ch >= '0') && (ch <= '9'))
        C = ch - 0x30 ;
    else if((ch >= 'A') && (ch <= 'F'))
        C = ch - 'A' + 10 ;
    else if((ch >= 'a') && (ch <= 'f'))
        C = ch - 'a' + 10 ;

    return C ;
}

int to string

//int to string
void itoa (int n, char s[])
{

    int i, j, sign;
    i = 0;
    j = 0;
    sign = n;

    for (i = 0; i < 10; i++)
    {
        s[i] = '\0';
    }

    s[0] = ' ';

    if (n < 0)
    {
        n = -n;
        s[0] = '-';
    }
    /*求数字位数*/
    while (sign)
    {
        j++;
        sign = sign / 10;
    }

    do
    {
        s[j] = n % 10 + '0';
        j--;
    }
    while ((n /= 10) > 0);
}

根据空格分割字符串

//根据空格分割字符串
int partition(u8 *src, char *par, int pos)
{
    int i, j;
    i = pos;

    //取得一个非空字符
    while(src[i] == ' ')
        ++i;

    if(src[i] != '\0')
    {
        j = 0;

        while((src[i] != '\0') && (src[i] != ' '))
        {
            par[j] = src[i];
            ++i;
            ++j;
        }

        par[j] = '\0';
        return i;
    }
    else
        return -1;
}

根据逗号拆分字符串单元

//根据逗号拆分字符串单元
int splitStr(char *str, char separator, char strs[][40])
{
    int i = 0, j = 0, n = 0;

    for(i = 0; str[i]; ++i)
    {
        if(str[i] == separator)
        {
            strs[n++][j] = 0;
            j = 0;
        }
        else strs[n][j++] = str[i];
    }

    strs[n++][j] = 0;
    return n;
}

将一整串字符串中的数字转换成ASCII码并输出到dest中

//将一整串字符串中的数字转换成ASCII码并输出到dest中
int strnumber_to_asciistr(char *dest, const char *src, int len)
{
    int i = 0 ;

    if(0 == len || NULL == src || NULL == dest)
        return -1;
    else
    {
        for(i = 0 ; i < len ; i++, src++)
        {
            if(*src < '0' || *src > '9')
                return -2 ;

            *dest++ = "0123456789"[*src >> 4];
            *dest++ = "0123456789"[*src & 0x0f];
        }

        *dest = '\0';
        return 0 ;
    }
}

BCD码转十进制

//BCD码转十进制
u8 BCD_Decimal(u8 bcd)
{
    u8 Decimal;
    Decimal = bcd >> 4;
    return(Decimal = Decimal * 10 + (bcd &= 0x0F));
}

十进制转BCD码

//十进制转BCD码
u8 Decimal_BCD(u8 decimal)
{
    return (u8) (decimal + (decimal / 10) * 6);
}

待续…

你可能感兴趣的:(C语言,字符串,c语言)