This must be a homework assignment because in real life you wouldn't do it this way. You would use the locale aware type, like TCHAR and the function _tcsrev. In a multi-byte project this is equivalent to _strrev and in a Unicode project it becomes _wcsrev.
This or other solutions are not safe from buffer overrun attacks. Better to use a std::string/wstring or std::vector<tchar> as the container for the string data.
TCHAR p = _T("This is a string");