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: 19061 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: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
#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: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
#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 |






