有没有一个函数能实现以下功能

[复制链接]
 楼主| 发表于 2018-6-15 16:26 | 显示全部楼层 |阅读模式

void LcdShowString(uchar ucCharRow, uchar ucCharCol, uchar *DispString)
void LcdShowString(uchar ucCharRow, uchar ucCharCol, uchar *DispString)
{
       uchar   uci;
       uchar   ShowBuff[2];
       uchar   ucStringLength;
       ucStringLength = strlen(DispString);
       for(uci = 0; uci < ucStringLength; )
       {  
           if (DispString[uci] <= 0x80)   //english
           {
               ShowBuff[0] = DispString[uci];
               ShowBuff[1] = 0x00;
               ShowWord(ucCharRow,( ucCharCol + uci), ShowBuff);
               uci += 1;
           }
           else //hanzi
           {
               ShowBuff[0] = DispString[uci];
               ShowBuff[1] = DispString[uci + 1];
               ShowWord(ucCharRow,( ucCharCol + uci), ShowBuff);
               uci += 2;
           }
           //超出LCD显示范围时,截尾。
           if((ucCharCol+uci)>c_LCD_MaxColNumber)
           {
               break;
           }
       }
}

一般在应用时候都是: LcdShowString(2,0,"abcd");
     LcdShowString(3,0,"某某汉字");
请问有没有一个函数能实现以下功能:例如:uchar temp = 2;
LcdShowString(2,0,(temp));同样也能实现显示数字2
发表于 2018-6-15 16:29 | 显示全部楼层
当然可以,你先把数字转成字符串即可。
 楼主| 发表于 2018-6-15 16:35 | 显示全部楼层
为什么keil里面没有itoa函数啊!能不能意见用什么函数吗?
发表于 2018-6-15 16:38 | 显示全部楼层
可以用sprintf
 楼主| 发表于 2018-6-15 16:42 | 显示全部楼层

sprintf有点不方便!
 楼主| 发表于 2018-6-15 16:44 | 显示全部楼层
寻求C人帮助啊!
怎么把一整数转换为字符串!
char *itoa(char *s)
     {   
           
    uchar str[] = {'1','2','\0'};
           *s =(str[1])        ;
                   return s   ;
     }
这么可以返回正确的
char *itoa(char *s) // 将一个整数按指定的格式转化为ASII字符串并返回  
     {   
           
                    uchar str[] = {'1','2','\0'};
           *s++ =(str[1])        ;
                   *s++ = (str[0]);
                   *s = '\0';
                   return s   ;
     }
但是这么处理就错误了!
头痛啊!能帮帮我吗?
发表于 2018-6-15 16:46 | 显示全部楼层
*(s++)
 楼主| 发表于 2018-6-15 16:50 | 显示全部楼层
唉,还是没有什么结果,算了,先结贴吧,多谢大家啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

961

主题

8893

帖子

4

粉丝
快速回复 返回顶部 返回列表