液晶屏的字符串操作

本文介绍了在单片机中处理液晶屏字符串操作的经验,强调理解并改造现有程序以适应需求的重要性。通过实例分享如何根据功能需求找到合适的程序,进行理解和改进,确保其在多个产品中的稳定应用,并经过反复测试和完善。
摘要由CSDN通过智能技术生成

我们只是站在巨人的肩膀上,其实巨人也是站在巨人的肩膀上的。我们写程序能抄就抄。根据自己的功能需求专门找到类似的程序,完全理解了,改为自己风格的能解决问题的程序,用来做过了几个产品经历过多次测试不断修改完善和增加。与单片机种类无关,可以直接复制黏贴。

源文件my_string.c

/******************************************************************************
 * Title:        my_string.c
 * Create Date:  2014-September-14
 * Description:  字符串操作,字符串长度为[0, 254]
 * Company:      
 * Author:       
 * E-MAIL:       
 * Last Update:  2016-September-13
 * Version:      V1.3
******************************************************************************/
#include"my_string.h"



/**************************************************************************
Function:    Str_Itoa
Description: 数字转换为字符串,限制为正整数(不带负号)
Input:       - num 数字九位[0,4294967296]
Output:      - str 字符串
Return:      no
**************************************************************************/
void Str_Itoa(uint32_t num, char *str)
{
    uint8_t i=0, j, k, half;
    char tmp;

    // 转换
    if (0 == num)
    {
   
        str[0] = '0';
        ++i;
    }
    else
    {
   
        while (num > 0)
        {
   
            str[i] = '0' + num%10;
            ++i;
            num /= 10;
        }
    }
    str[i] = '\0';

    // 逆序
    if (i >= 2)
    {
   
        half = i / 2;  // 字符个数的一半
        --i;
        for (j=0; j<half; ++j)
        {
   
            k      = i - j;
            tmp    = str[j];
            str[j] = str[k];
            str[k] = tmp;
        }
    }
}
/**************************************************************************
Function:    Str_ItoaLimit
Description: 数字转换为字符串,限制为正整数(不带负号)
             限制最小长度,不够则左边填充字符
Input:       - num 数字九位[0,4294967296]
             - len 最小长度
             - ch  填充字符
Output:      - str 字符串
Return:      no
**************************************************************************/
void Str_ItoaLimit(uint32_t num, char *str, uint8_t len, char ch)
{
    uint8_t i=0, j, k, half;
    char tmp;

    // 转换
    if (0 == num)
    {
   
        str[0] = '0';
        ++i;
    }
    else
    {
   
        while (num > 0)
        {
   
            str[i] = '0' + num%10;
            ++i;
            num /= 10;
        }
    }

    // 在前面填充字符
    if (i < len)
    {
   
        for (; i<len; ++i)
        {
   
            str[i] = ch;
        }
    }

    str[i] = '\0';

    // 逆序
    if (i >= 2)
    {
   
        half = i / 2;  // 字符个数的一半
        --i;
        for (j=0; j<half; ++j)
        {
   
            k      = i - j;
            tmp    = str[j];
            str[j] = str[k];
            str[k] = tmp;
        }
    }
}
/
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值