Você está aqui: C ::: Dicas & Truques ::: Strings e Caracteres

Como usar a função strtok() para quebrar uma string C usando delimitadores

Quantidade 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++

Link para compartilhar na Internet ou com seus amigos:

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

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 26 usuários muito felizes estudando em nosso site.