将int转换为字符串显示在lcd上,atmel studio c语言
Posted
技术标签:
【中文标题】将int转换为字符串显示在lcd上,atmel studio c语言【英文标题】:Convert int to string to display on lcd, atmel studio c language 【发布时间】:2019-08-03 09:03:41 【问题描述】:我在 atmel 工作室为我的 avr atmega 32 ic 编写了一个程序。通过键盘输入 0 到 999 之间的数字。我想在液晶显示器上显示。 我的问题是:lcd 只接受 char 和 string.i 将输入的数字存储在 int 变量中。如何将其转换为字符串或字符。 我写了这个函数; Y 是通过 int 的键盘输入的数字:
char str;
itoa(y,str,10);
alcd_putc(str);
但它不起作用。帮帮我谢谢。
【问题讨论】:
如果可用,您可以使用sprintf()
代替itoa()
。
str不应该是像str[10]这样的数组吗?
亲爱的achal 谢谢,你能解释更多吗? Sprintf(str,y)????
你能用我上面写的变量和引用写出你的答案吗?
Sprint(str,”%d”,y); lcd_puts(y);对吗?
【参考方案1】:
使用alcd_puts
函数如下:
char str[5]; //< Use a array of char
itoa(y,str,10);
alcd_puts(str);
【讨论】:
谢谢亲爱的。但是为什么 str[5] 不是 str[8]。什么是差异?我在它在 atmel 工作室不起作用之前就这样做了,有人告诉我 atmel 没有找到这个功能作为标准功能。所以告诉我使用 sprintf() 但它也不起作用。 @Aashkanpasha 它应该是y
中的最大位数加上一个额外的空字符。您也可以使用str[8]
,但由于您正在进行嵌入式编程,因此可能会存在内存限制,即使在少数情况下。
谢谢。关于这一点,atmel 不知道这个 itoa 作为标准功能,我不能在 atmel 中使用它。你能用 sprintf 给我答案吗???
@Aashkanpasha char str[5]; snprintf(str, 5, "%d", y);
谢谢亲爱的。有效。但我发现我的问题是另一个地方。我通过扫描键盘获取数字并将它们存储在数组名称 l[i] 中。数组有 3 个元素,例如 1,2,6 或一个元素 1 或两个元素 5,3。 aray 的长度在 1 到 3 个数字之间,我们只能通过键盘输入 1000 以下的数字。我无法使 int y=l[0]l[1]l[2] 示例 y=126。我该怎么做。然后到达 itoa。以上是关于将int转换为字符串显示在lcd上,atmel studio c语言的主要内容,如果未能解决你的问题,请参考以下文章