几个常用的数据处理代码

这篇博客分享了C语言中常见的数据处理技巧,包括字符转十六进制的函数实现,整数转换为字符串的函数,根据空格和逗号分割字符串的方法,以及字符串中的数字转换为ASCII码。还涉及了BCD码与十进制之间的转换,是C语言编程中数据处理的重要参考。
摘要由CSDN通过智能技术生成

整理几个常用的数据处理代码(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);
}

待续…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值