#include <iostream>
#include <string>
#include <cctype>
enum
{
col_count = 5 + 1,
row_count = 7,
glyph_count = 26
};
typedef const char row_t[ col_count ];
typedef const row_t glyph_t[ row_count ];
typedef const glyph_t glyph_set_t[ glyph_count ];
typedef std::string line_t[ row_count ];
glyph_set_t gs
{
{
{" A "},
{" A A "},
{"A A"},
{"A A"},
{"AAAAA"},
{"A A"},
{"A A"},
},
{
{"BBBB "},
{"B B"},
{"B B"},
{"BBBB "},
{"B B"},
{"B B"},
{"BBBB "},
},
//...
};
int main()
{
const char* s = "AB";
for( int r = 0; r < row_count; ++r )
{
for( const char* p = s; *p; ++p )
{
int set_idx = std::toupper( *p ) - 'A';
// this...
glyph_t& g = gs[ set_idx ];
std::cout << g[ r ] << ' ';
// ...or this (whichever is easier for you)
// std::cout << gs[ set_idx ][ r ] << ' ';
}
std::cout << std::endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8Y2N0eXBlPgoKZW51bQp7CiAgY29sX2NvdW50ID0gNSArIDEsCiAgcm93X2NvdW50ID0gNywKICBnbHlwaF9jb3VudCA9IDI2Cn07Cgp0eXBlZGVmIGNvbnN0IGNoYXIgcm93X3RbIGNvbF9jb3VudCBdOwp0eXBlZGVmIGNvbnN0IHJvd190IGdseXBoX3RbIHJvd19jb3VudCBdOwp0eXBlZGVmIGNvbnN0IGdseXBoX3QgZ2x5cGhfc2V0X3RbIGdseXBoX2NvdW50IF07CnR5cGVkZWYgc3RkOjpzdHJpbmcgbGluZV90WyByb3dfY291bnQgXTsKCmdseXBoX3NldF90IGdzCnsKewp7IiAgQSAgIn0sCnsiIEEgQSAifSwKeyJBICAgQSJ9LAp7IkEgICBBIn0sCnsiQUFBQUEifSwKeyJBICAgQSJ9LAp7IkEgICBBIn0sCn0sCgp7CnsiQkJCQiAifSwKeyJCICAgQiJ9LAp7IkIgICBCIn0sCnsiQkJCQiAifSwKeyJCICAgQiJ9LAp7IkIgICBCIn0sCnsiQkJCQiAifSwKfSwKLy8uLi4KfTsKCmludCBtYWluKCkKewogIGNvbnN0IGNoYXIqIHMgPSAiQUIiOwoKICBmb3IoIGludCByID0gMDsgciA8IHJvd19jb3VudDsgKytyICkKICB7CiAgICBmb3IoIGNvbnN0IGNoYXIqIHAgPSBzOyAqcDsgKytwICkKICAgIHsKICAgICAgaW50IHNldF9pZHggPSBzdGQ6OnRvdXBwZXIoICpwICkgLSAnQSc7CiAgICAgIC8vIHRoaXMuLi4KICAgICAgZ2x5cGhfdCYgZyA9IGdzWyBzZXRfaWR4IF07CiAgICAgIHN0ZDo6Y291dCA8PCBnWyByIF0gPDwgJyAnOwogICAgICAvLyAuLi5vciB0aGlzICh3aGljaGV2ZXIgaXMgZWFzaWVyIGZvciB5b3UpCiAgICAgIC8vIHN0ZDo6Y291dCA8PCBnc1sgc2V0X2lkeCBdWyByIF0gPDwgJyAnOwogICAgfQogICAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKICB9CiAgcmV0dXJuIDA7Cn0=