在Arduino C ++中,我试图初始化一个2 dim字符数组。
在数组的每个第1级元素将是两个第二级元素,第一个是一个字符(加上假定的\ 0终止符),第二个是最多十九个字符(加上假定的\ 0终止符)。因此,每个第一级元素应该不超过二十二个字符 - 1(+1)+ 19(+1)。
我正在尝试:
char Mchar[][22] = {
{" ","0000000"},
{"A","10111"},
{"B","111010101"},
{"C","11101011101"},
{"D","1110101"},
{"E","1"},
{"F","101011101"},
{"G","111011101"},
{"H","1010101"},
{"I","101"},
{"J","1011101110111"},
{"K","111010111"},
{"L","101110101"},
{"M","1110111"},
{"N","11101"},
{"O","11101110111"},
{"P","10111011101"},
{"Q","1110111010111"},
{"R","1011101"},
{"S","10101"},
{"T","111"},
{"U","1010111"},
{"V","101010111"},
{"W","101110111"},
{"X","11101010111"},
{"Y","1110101110111"},
{"Z","11101110101"},
{"0","1110111011101110111"},
{"1","10111011101110111"},
{"2","101011101110111"},
{"3","1010101110111"},
{"4","10101010111"},
{"5","101010101"},
{"6","11101010101"},
{"7","1110111010101"},
{"8","111011101110101"},
{"9","11101110111011101"},
{".","10111010111010111"},
{","",1110111010101110111"},
{"?","101011101110101"},
{"'","1011101110111011101"},
{"!","1110101110101110111"},
{"/","1110101011101"},
{"(","111010111011101"},
{")","1110101110111010111"},
{"&","10111010101"},
{":","11101110111010101"},
{";","11101011101011101"},
{"=","1110101010111"},
{"+","1011101011101"},
{"-","111010101010111"},
{"_","10101110111010111"},
{"\"","101110101011101"},
{"$","10101011101010111"},
{"@","10111011101011101"}
};
毋庸置疑,它对我不起作用,反复出现错误行:
错误:'char [22]'
的初始化程序太多
有人会指出我的方式错误。
TIA
答案 0 :(得分:0)
这个的初始化语法不清楚,可能是错误的,你试图初始化一个字符数组(一个字符串),其中包含两个单独字符串的大括号分隔列表(应该用于初始化一个数组(以及其他内容) )字符串)。如果您有std::vector
,std::string
和std::pair
可以访问
auto vec = std::vector<std::pair<char, std::string>>{
{' ', "0000000"},
{'A', "10111"},
{'B', "111010101"},
{'C', "11101011101"}
};
答案 1 :(得分:0)
你拥有的是22个char数组的数组。这样就会给你一个字符串列表。但是你似乎想要一个字符串对列表。为此,我认为您需要3
尺寸:
char Mchar[][2][22] = {
{" ","0000000"},
{"A","10111"},
{"B","111010101"},
{"C","11101011101"},
{"D","1110101"},
// ...
};
或者你可以像这样创建一对char const*
的数组:
char const* Mchar[][2] = {
{" ","0000000"},
{"A","10111"},
{"B","111010101"},
{"C","11101011101"},
{"D","1110101"},
// ...
};
现在你的字符串可以是任意长度,因为你的数组只存储指向它们第一个元素的指针。
修改强>
在重新阅读这个问题时,你真正要求的是:
char Mchar[][22] = {
{" 0000000"},
{"A10111"},
{"B111010101"},
{"C11101011101"},
{"D1110101"},
// ...
};