Сабж:
The function does not append a null object to the string designated by s
Почему? Функция же сделана, чтобы копировать содержимое строки наружу, но придётся потом самому ещё и ставить 0 в конце (а конец ещё и не так просто узнать, ибо он вычисляется классом строки), либо извращаться (иначе не скажешь) через std::strcpy(s, str.c_str())