Avatar ·

Como converter std::string para char* em C++? Problemas com c_str() e data()

Olá a todos! Comecei a estudar C++ recentemente e encontrei um problema. Preciso passar o conteúdo de uma std::string para uma função que aceita apenas char* (não const char*). Eu sei que std::string tem os métodos c_str() e data(), mas eles retornam const char*, e o compilador reclama que não posso passar const para um parâmetro não-const. Tentei fazer assim:\n\n```cpp\nstd::string myStr = "Hello, world!";\nchar* ptr = myStr.c_str(); // Erro: não é possível converter const char* para char*\nsomeFunction(ptr);\n```\n\nDepois li que posso usar const_cast, mas isso parece perigoso. Também vi alguém copiando a string para um array char usando strcpy. Qual dessas opções é a correta? Ou existe alguma maneira padrão de obter exatamente char* (não const) a partir de std::string? Desde já agradeço pela ajuda!