That is because what the map actually returned is an STL "string" object rather than a char array.
Try to call c_str() on the "basic_string" you received from the map to get the underlying char pointer before you do the strcpy.
basic_string<charT, traits, Alloc>
Or, you can use STL "string" exclusively instead of using char*. C++ programmers usually prefer to use string objects instead of mixing string and char* anyway.