Grazie al tuo suggerimento ho risolto così:

codice:
#include <iostream>
#include <string>

using namespace std;
const char* dp= ":";
const char* charray = "46a9a3ad7c14709149b004065fe716d5";

string str2;

int main ()
{

string str2(charray); 
str2.assign(charray);

for(int i=2; i < (str2.size() - 1); i=i+2){
  str2.insert(i, dp);
  i++;
}

cout << str2 <<endl;

return 0;
}
Infatti il risultato è:
46:a9:a3:ad:7c:14:70:91:49:b0:04:06:5f:e7:16:d5