首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在c编程的图片中拼接变量?

如何在c编程的图片中拼接变量?
EN

Stack Overflow用户
提问于 2009-09-13 07:39:18
回答 5查看 6.5K关注 0票数 1

我用hitech C编写了一张16f84a的pic来驱动hd44780液晶显示器。到目前为止,我已经初始化了lcd,可以将单个字符和字符串写入lcd。现在我需要这样做:

var = 250;

lcd_write_string("MyVar有值:“+ var);

因此,液晶屏应该显示"MyVar has value: 250“。

首先,我应该如何连接一个变量和一个字符串?其次,变量var包含一个8位二进制数(十进制中的0-255)。如果var = 23;则8位数字必须被分成2以表示ascii中的2和3,然后由lcd显示。我该怎么做呢?似乎我必须做基数10转换或if树,以拆分所有2位数字,然后显示在lcd上。有没有更简单的方法来解决这个问题?

谢谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-09-13 07:42:43

为什么不直接使用printf("%d", var)呢?

代码语言:javascript
复制
var = 250;
char *static_msg = "MyVar has value:";
char msg[sizeof(static_msg) + 4];

sprintf(msg, "%s %d", static_msg, var);
lcd_write_string(msg);
票数 4
EN

Stack Overflow用户

发布于 2009-09-13 08:08:32

假设您的工具集不包含标准C库,或者您希望自己弄清楚如何做到这一点,以下是我将采取的方法:

声明一个与LCD所能显示的字符数相同的缓冲区。将固定字符串写入该缓冲区的开头。确定变量的字符宽度(我在这里省略了一些数学,但我认为这是一个合理的练习)。使用该长度和固定字符串的长度,计算出数字在缓冲区中的位置。使用与前面相同的数学结构,一个接一个地将数字写入该空间。C语言有一个技巧(标准要求),它允许您通过表达式'0' + digit计算出十进制数字的字符值。希望您能看到它是如何工作的。最后,以lcd_write_string函数期望的方式终止缓冲区,并在缓冲区上调用它。

正如其他受访者所指出的,这基本上实现了标准库的printf函数家族中的一小部分。我认为即使你能(也应该)弄清楚它的实现是值得的!在生产代码中使用该库。

由于这闻起来有点像家庭作业,所以我暂时不会进一步详细说明。如果您需要有关特定问题的帮助,我将查找该问题的更新。

票数 1
EN

Stack Overflow用户

发布于 2009-09-13 07:45:02

如果C编译器附带标准的C库函数,那么可以使用类似于printfsprintf来生成字符串。

sprintf可用于生成格式化的字符串(如char*),该字符串可能会被发送到lcd_write_string函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1417109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档