"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como tokenizar um `std::string` com funções C?

Como tokenizar um `std::string` com funções C?

Publicado em 2024-11-10
Navegar:397

How to Tokenize a `std::string` with C Functions?

Tokenizar std::string com funções C

Tokenizar uma string é uma operação fundamental na programação. No entanto, ao trabalhar com funções C como strtok(), que requerem uma string char*, tokenizar diretamente uma std::string pode enfrentar desafios.

strtok() com std::string

Para utilizar strtok() com um std::string, uma opção é convertê-lo em um const char* usando .c_str(). No entanto, isso pode nem sempre ser desejável, pois fornece uma representação somente leitura da string.

Abordagens alternativas

Uma solução mais adequada é aproveitar std::istringstream em vez de strtok( ). std::istringstream permite a tokenização baseada em fluxo de um std::string. Aqui está um exemplo:

#include 
#include 
#include 

int main() {
    std::string myText("some-text-to-tokenize");
    std::istringstream iss(myText);
    std::string token;

    while (std::getline(iss, token, '-')) {
        std::cout 

Este código cria um std::istringstream a partir de std::string e lê tokens dele até encontrar o delimitador especificado ('-' neste caso).

Opções Adicionais

Para recursos de tokenização mais avançados, bibliotecas como Boost fornecem soluções abrangentes que oferecem maior flexibilidade e recursos em comparação com strtok().

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3