c++ - 将一个字符串分成一个数组

标签 c++ c arrays string arduino

我的 Arduino 中有一串二进制数字。我需要将它们转换为数组。该数据代表 LED 显示屏中的光柱。在我的程序中,我已经有一个工作函数,它接受一个数组并使用数据在屏幕上显示单词。数据需要格式化如下所示:

我的字符串可能有几种不同的外观。以下是示例:

char CurrentWord = "11111110001000000100011111110000000B00000001000001111111110000010000000";

或者

char CurrentWord = "1111111 0001000 0001000 1111111 0000000 B0000000 1000001 1111111 1000001 0000000";

或者甚至:

char CurrentWord = "B1111111 B0001000 B0001000 B1111111 B0000000 B0000000 B1000001 B1111111 B1000001 B0000000";

上面的示例将在屏幕上生成单词“Hi”。然而,为了使显示正常工作,数据必须转换为数组。所以它必须看起来像这样:

int CurrentWordInt[] = {B1111111, B0001000, B0001000, B1111111, B0000000, B0000000, B1000001, B1111111, B1000001, B0000000};

我该怎么做?

最佳答案

如果问题是如何让 C++ 解析二进制文件,那么使用这个宏:

#define B(in) ( ((in&(1<< 0))>> 0) \
               |((in&(1<< 3))>> 2) \
               |((in&(1<< 6))>> 4) \
               |((in&(1<< 9))>> 6) \
               |((in&(1<<12))>> 8) \
               |((in&(1<<15))>>10) \
               |((in&(1<<18))>>12) \
               |((in&(1<<21))>>14) \
               |((in&(1<<24))>>16) \
              )


#include <iostream>
int main() {
    int CurrentWordInt[] = {B(01111111), B(00001000), B(0001000), B(01111111), B(0000000)}; 
    std::cout << CurrentWordInt[0] << ' ';
    std::cout << CurrentWordInt[1] << ' ';
    std::cout << CurrentWordInt[2] << ' ';
    std::cout << CurrentWordInt[3] << ' ';
    std::cout << CurrentWordInt[4] << ' ';
}

显示 127 8 8 127 0
请注意,此宏要求所有输入均为零,后跟七个一/零。

如果这不是您的问题,那么我不知道您要问我们什么。

关于c++ - 将一个字符串分成一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8086281/

相关文章:

c++ - 调用链接器时是否可以强制 CMake 重新排序参数?

c - ARM V7M 64位划分

javascript - 对数组进行排序,并将重复项插入新数组

java - 如何将数组元素的总和除以它们的数量?

c++ - 如何检测单个文件的文件系统大小限制

java - CORBA 测试自动化

c - C 中的指针赋值、malloc() 和 free()

c - 如何知道正在运行的应用程序是否已退出并据此在 C 中执行某些操作?

Javascript:连接多个包含路径的数组并以特殊方式转换为对象

C++:美化boost ptree json_parser