The simplest method would be to dynamically allocate a second array that is twice the size of the base. Then, using two index variables, walk down the base array. For every element in the base array, place two in the modified array. Then increment the base index by one and the modified index by two. Translated into C++, the algorithm is thus.
Code:
#include <iostream>
using std::cout;
using std::endl;
int main()
{
char base[] = "ABCDEFGHIJKLM";
char *modified = new char[sizeof base * 2 - 1];
size_t j = 0;
for (size_t i = 0; base[i] != '\0'; i++, j += 2)
modified[j] = modified[j + 1] = base[i];
modified[j] = '\0';
cout<< modified <<endl;
delete [] modified;
}