Você está aqui: C ::: Dicas & Truques ::: Strings e Caracteres |
Como usar a função strtok() para quebrar uma string C usando delimitadoresQuantidade de visualizações: 18982 vezes |
A função strtok(), presente no header string.h, pode ser usada quando precisamos quebrar uma string C usando um delimitador e retornar suas partes. Veja sua assinatura: char *strtok(char *str, const char *delimiters); Note que a função recebe um ponteiro para a cadeia de caracteres que queremos quebrar e um ponteiro para a cadeia de caracteres a serem usados como delimitadores. Comece analisando o seguinte trecho de código: #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { char frase[] = "Gosto muito de C e C++"; char *partes; // vamos obter o pedaço "Gosto" partes = (char*)strtok(frase, " "); printf("%s\n", partes); // vamos obter o pedaço "muito" partes = (char*)strtok(NULL, " "); printf("%s\n", partes); printf("\n\n"); system("pause"); return 0; } Note que na primeira vez que chamamos a função strtok() nós fornecemos a string a ser quebrada. Mas, a partir da segunda chamada nós fornecemos o valor NULL. Isso acontece porque a função usa a posição a partir do fim do último pedaço da string encontrado como inicio para a próxima busca. Quando o caractere null da string a ser quebrada é encontrado podemos concluir que a função strtok() finalizou seu trabalho. Veja este novo trecho de código. Aqui nós quebramos e exibimos todos os pedaços da string: #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { char frase[] = "Gosto muito de C e C++"; char *parte; // vamos obter o primeiro pedaço da string parte = (char*)strtok(frase, " "); // obtivemos alguma pedaço? while(parte != NULL){ printf("%s\n", parte); parte = (char*)strtok(NULL, " "); } printf("\n\n"); system("pause"); return 0; } Ao executarmos este código com a frase "Gosto muito de C e C++" o resultado será: Gosto muito de C e C++ |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |