It appers that the program is much more in C than in C++.
Check the sized of your arrays (result should be an array too, I guess this is a copy paste bug).
The arrays have to be large enough to contain a terminating 0 byte too, item1 and item2 are both too small.
If you do not change a variable, its good practise (and important on a small device) to make the variable const.
And if a variable only contains a const string, its less error prone not to define the size of the array.
E.g. static const char item1[] = "0x0";
Also make sure that the destination buffer is setup when you do the first strcat.
Daniel