You can get a modifiable C string from a C++ string by simply taking the address of the first character. Use
void fun1()
{
fun2(&str[0]);
}
(the only catch is if fun2 happens to modify the terminating null character of its C string argument, the null appended by the C++ string in this situation is not modifiable)