问问C函数的问题

[复制链接]
 楼主| zwll 发表于 2011-11-24 13:35 | 显示全部楼层 |阅读模式
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
dingy 发表于 2011-11-24 13:40 | 显示全部楼层
当然可以,你先把数字转成字符串即可。
 楼主| zwll 发表于 2011-11-24 13:48 | 显示全部楼层
为什么keil里面没有itoa函数啊!能不能意见用什么函数吗?
chuxh 发表于 2011-11-24 13:54 | 显示全部楼层
可以用sprintf
 楼主| zwll 发表于 2011-11-24 14:01 | 显示全部楼层
sprintf有点不方便!
 楼主| zwll 发表于 2011-11-24 14:07 | 显示全部楼层
寻求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   ;
  }
但是这么处理就错误了!
头痛啊!能帮帮我吗?
llljh 发表于 2011-11-24 14:25 | 显示全部楼层
*(s++)
 楼主| zwll 发表于 2011-11-24 14:31 | 显示全部楼层
这么搞也是错的
 楼主| zwll 发表于 2011-11-24 14:35 | 显示全部楼层
算了,结贴吧,我自己再看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

885

主题

11314

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部