Mais
std::string to char*
Eu quero converter um std::string em um char ou char[] tipo de dado.
std::string str = "string";
char* chr = str;
Resultados em: "erro: não pode converter 'std::string' para 'char'... ".
Que métodos estão disponíveis para fazer isto?
303
3
Ele ganhou't converte automaticamente (graças a Deus). Você'terá que utilizar o método
c_str()
para obter a versão de string C.Note que ele retorna um
const char *
; você está'não tem permissão para alterar a string no estilo C retornada porc_str()
. Se você quiser processá-la você'terá que copiá-la primeiro:Ou em C++ moderno:
Se você só quer uma corda ao estilo C representando o mesmo conteúdo:
Se você quer uma string estilo C com novo conteúdo, uma maneira (dado que você não'não sabe o tamanho da string em tempo de compilação) é alocação dinâmica:
Don'não se esqueça de
delete[]
lo mais tarde.Se, em vez disso, quiser uma matriz de comprimento estatisticamente alocada e limitada:
std::string
does't implicitamente converter para estes tipos pela simples razão de que a necessidade de fazer isto é normalmente um cheiro de design. Certifique-se de que você realmente precisa disso.Se você **definidamente** precisar de um `char`, a melhor maneira é provavelmente:
Assumindo que você só precisa de um fio ao estilo C para passar como entrada: