c - 向左移动缓冲区,在 LED 面板上滚动字符串?

标签 c arrays text scroll buffer

我有一个不太明白的功能

从0到110共有109个地址。

这段代码如何将文本向左移动?

b=0;
while(b<109)
{
  Display_Buffer[b] = Display_Buffer[b+1];
  b++;
}

如果 b 从 0 开始,那么 b+1 应该将文本滚动到右边 ???还是我弄错了?因为在 0 处,b+1 表示地址是 1,如果是 b-1,那么地址应该是 110(因此向左滚动)...但是这里不是这种情况,有人可以提供一个粗略的解释吗?

display_buffer 包含存储在其数组中的字符串信息。

--

编辑

谢谢大家!!如果我用 [b-1] 替换 Display_Buffer[b+1] 会怎样……这会逆转这个过程吗?怎么样?

好吧,我意识到我必须添加 b=109 和 while (b!=0) .. 否则就没有意义了。

但是,如果 Display_Buffer[109]=Display_Buffer[108],这是否意味着它会产生与你们回答的相同但相反的效果?

最佳答案

每个位置都分配了它右侧位置的值,因此效果是向左滚动。

想想这个很棒的 ASCII 艺术:

         0  1  2  3  4
Before: [h][e][l][l][o]
 After: [e][l][l][o][ ]

位置 0 的槽被设置为槽 1 的值,因此 'h' 变为 'e',依此类推。

关于c - 向左移动缓冲区,在 LED 面板上滚动字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5194132/

相关文章:

javascript - jQuery 跨标签突出显示元素中的文本片段

c++ - Dev C++ 控制台窗口属性

c++ - 为什么我必须在 g++ 中打开优化以进行简单的数组访问?

c - strtok() 用于 CSV 文件打印(空)以及所需值

c - 数组指针数组上的指针

c++ - 如何使用省略尾随 '\0' 的字符串文字初始化 std::array<char, N>

java - 改造:发布原始文本 "user={"key 1": "value1"等}?

c - 如何在 C 中退出后返回变量

c - 如何复制 char 指针数组的值?

c - 如何检索文本文件中的行