Contrary to the other answers already posted in here, you should NOT be attempting to use strcpy to copy into "map".
Before you do any copying, you want to ensure that you do not overrun the buffer. To do this, you should not use the size of the source, but instead the size of the destination. The reason for this is that the source could potentially be longer than the destination has room. In order to avoid an issue that might not rear its head until you've done some other
intensive computations you should ensure that you don't attempt to copy into a destination that isn't large enough to contain what you are trying to copy into it.
This is the function signature for copying strings (well, the one you should be using here):
strncpy(dest, source, size);
Here's what you should use instead:
strncpy(map[i], s.c_str(), sizeof(map[i]));
Edit:
Alternatively you could use strncpy_s() (if you are on Windows!), which allows you to specify both source and destination lengths.
strncpy_s(dest, dest_size, source, source_size)
strcpyand watch out for buffer overflow. You cannot assign to an array. Or even better, usestd::vector<std::string>rather than yacky C stringsstd::vector<std::string>or evenstd::string[100]? If you're using C++, take advantage of its types!