#include <stdio.h>
#include <string.h>
#define MAZE_COLUMNS 3
#define MAZE_ROWS 3
#define MAZEW_COLUMNS 4
#define MAZEE_COLUMNS 4
static void transcribeMazeRow(const char* source, size_t srcColumns, char prefix, char* dest, size_t destColumns)
{
dest[0] = prefix;
memcpy(&dest
[1], &source
[0], srcColumns
* sizeof(source
[0])); }
int main(int argc, char* argv[])
{
// 3 rows of 3 columns, each is a distinct char. this is not a string.
char maze[MAZE_ROWS][MAZE_COLUMNS] = { { 'a', 's', 'd' }, { 'u', 's', 'd' }, { 'p', 's', 'd' } };
// 3 rows of 4 columns, distinct character values, not a string.
char mazeW[MAZE_ROWS][MAZEW_COLUMNS];
char mazeE[MAZE_ROWS][MAZEE_COLUMNS];
for (size_t row = 0; row < MAZE_ROWS; ++row) {
transcribeMazeRow(maze[row], MAZE_COLUMNS, 'W', mazeW[row], MAZEW_COLUMNS);
transcribeMazeRow(maze[row], MAZE_COLUMNS, 'E', mazeE[row], MAZEE_COLUMNS);
}
// this part is mostly to show the poster the correct way to refer to all elements of each array.
printf("maze: %c%c%c, %c%c%c, %c%c%c\n", maze[0][0], maze[0][1], maze[0][2],
maze[1][0], maze[1][1], maze[1][2],
maze[2][0], maze[2][1], maze[2][2] );
printf("mazeW: %c%c%c%c, %c%c%c%c, %c%c%c%c\n", mazeW[0][0], mazeW[0][1], mazeW[0][2], mazeW[0][3],
mazeW[1][0], mazeW[1][1], mazeW[1][2], mazeW[1][3],
mazeW[2][0], mazeW[2][1], mazeW[2][2], mazeW[2][3] );
printf("mazeE: %c%c%c%c, %c%c%c%c, %c%c%c%c\n", mazeE[0][0], mazeE[0][1], mazeE[0][2], mazeE[0][3],
mazeE[1][0], mazeE[1][1], mazeE[1][2], mazeE[1][3],
mazeE[2][0], mazeE[2][1], mazeE[2][2], mazeE[2][3] );
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCiNkZWZpbmUgTUFaRV9DT0xVTU5TIDMKI2RlZmluZSBNQVpFX1JPV1MgMwojZGVmaW5lIE1BWkVXX0NPTFVNTlMgNAojZGVmaW5lIE1BWkVFX0NPTFVNTlMgNAoKc3RhdGljIHZvaWQgdHJhbnNjcmliZU1hemVSb3coY29uc3QgY2hhciogc291cmNlLCBzaXplX3Qgc3JjQ29sdW1ucywgY2hhciBwcmVmaXgsIGNoYXIqIGRlc3QsIHNpemVfdCBkZXN0Q29sdW1ucykKewoJZGVzdFswXSA9IHByZWZpeDsKCW1lbWNweSgmZGVzdFsxXSwgJnNvdXJjZVswXSwgc3JjQ29sdW1ucyAqIHNpemVvZihzb3VyY2VbMF0pKTsKfQoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKewoJLy8gMyByb3dzIG9mIDMgY29sdW1ucywgZWFjaCBpcyBhIGRpc3RpbmN0IGNoYXIuIHRoaXMgaXMgbm90IGEgc3RyaW5nLgogICAgY2hhciBtYXplW01BWkVfUk9XU11bTUFaRV9DT0xVTU5TXSA9IHsgeyAnYScsICdzJywgJ2QnIH0sIHsgJ3UnLCAncycsICdkJyB9LCB7ICdwJywgJ3MnLCAnZCcgfSB9OwoKCS8vIDMgcm93cyBvZiA0IGNvbHVtbnMsIGRpc3RpbmN0IGNoYXJhY3RlciB2YWx1ZXMsIG5vdCBhIHN0cmluZy4KCWNoYXIgbWF6ZVdbTUFaRV9ST1dTXVtNQVpFV19DT0xVTU5TXTsKCWNoYXIgbWF6ZUVbTUFaRV9ST1dTXVtNQVpFRV9DT0xVTU5TXTsKCglmb3IgKHNpemVfdCByb3cgPSAwOyByb3cgPCBNQVpFX1JPV1M7ICsrcm93KSB7CgkJdHJhbnNjcmliZU1hemVSb3cobWF6ZVtyb3ddLCBNQVpFX0NPTFVNTlMsICdXJywgbWF6ZVdbcm93XSwgTUFaRVdfQ09MVU1OUyk7CgkJdHJhbnNjcmliZU1hemVSb3cobWF6ZVtyb3ddLCBNQVpFX0NPTFVNTlMsICdFJywgbWF6ZUVbcm93XSwgTUFaRUVfQ09MVU1OUyk7Cgl9CgoJLy8gdGhpcyBwYXJ0IGlzIG1vc3RseSB0byBzaG93IHRoZSBwb3N0ZXIgdGhlIGNvcnJlY3Qgd2F5IHRvIHJlZmVyIHRvIGFsbCBlbGVtZW50cyBvZiBlYWNoIGFycmF5LgoJcHJpbnRmKCJtYXplOiAlYyVjJWMsICVjJWMlYywgJWMlYyVjXG4iLAoJCQltYXplWzBdWzBdLCBtYXplWzBdWzFdLCBtYXplWzBdWzJdLAoJCQltYXplWzFdWzBdLCBtYXplWzFdWzFdLCBtYXplWzFdWzJdLAoJCQltYXplWzJdWzBdLCBtYXplWzJdWzFdLCBtYXplWzJdWzJdCQkpOwoJcHJpbnRmKCJtYXplVzogJWMlYyVjJWMsICVjJWMlYyVjLCAlYyVjJWMlY1xuIiwKCQkJbWF6ZVdbMF1bMF0sIG1hemVXWzBdWzFdLCBtYXplV1swXVsyXSwgbWF6ZVdbMF1bM10sCgkJCW1hemVXWzFdWzBdLCBtYXplV1sxXVsxXSwgbWF6ZVdbMV1bMl0sIG1hemVXWzFdWzNdLAoJCQltYXplV1syXVswXSwgbWF6ZVdbMl1bMV0sIG1hemVXWzJdWzJdLCBtYXplV1syXVszXQkJKTsKCXByaW50ZigibWF6ZUU6ICVjJWMlYyVjLCAlYyVjJWMlYywgJWMlYyVjJWNcbiIsCgkJCW1hemVFWzBdWzBdLCBtYXplRVswXVsxXSwgbWF6ZUVbMF1bMl0sIG1hemVFWzBdWzNdLAoJCQltYXplRVsxXVswXSwgbWF6ZUVbMV1bMV0sIG1hemVFWzFdWzJdLCBtYXplRVsxXVszXSwKCQkJbWF6ZUVbMl1bMF0sIG1hemVFWzJdWzFdLCBtYXplRVsyXVsyXSwgbWF6ZUVbMl1bM10JCSk7CgkKCXJldHVybiAwOwp9Cg==