Documentação
  • Bem-vindo
  • Biblioteca Padrão
  • Características da linguagem
  • Comentários
  • Declaração e inicialização de variáveis
    • Inferência automática de tipos
  • Tipos de dados
    • Valores numéricos
    • Estruturas e Uniões de dados
      • Acessando os valores dos campos de estruturas
    • Strings e caracteres
      • Subtextos
      • Percorredores
    • Listas duplamente vinculadas
    • Conversão de tipos
  • Laços e Desvios condicionais
    • Lidando com vazamentos de memória em laços
  • Operadores
    • Precedência e Ordem de avaliação de operadores
  • Rotinas, Parâmetros e Funções
  • Trabalhando com Bibliotecas externas
  • Trabalhando com Instruções Hexadecimais
  • Callbacks
  • Introduzindo as palavras-chave "Preserve" e "original"
  • Usando a preposição "de"
  • Cores
  • Gráficos de Tartaruga (Turtle Graphics)
  • Algoritmos de Exemplo
    • Olá Mundo
    • A + B
    • Agenda Telefônica
    • Animação de sprites
    • Fatorial
    • 100 Portas
    • Dó Ré Mi Fá
    • API Win32 - GdipImageRotateFlip
    • Pintando como Claude Monet
    • Exemplo de interface
    • Evitando problemas de cintilação (Flickering)
    • Desenhando e pintando retângulos e caixas
    • Cofrinho Virtual
Fornecido por GitBook
Nesta página

Isto foi útil?

Editar no GitLab
  1. Tipos de dados
  2. Strings e caracteres

Percorredores

AnteriorSubtextosPróximoListas duplamente vinculadas

Atualizado há 3 meses

Isto foi útil?

Um "percorredor" é uma estrutura usada para analisar strings (fazer o parsing) . Para entendê-lo, você deve estar familiarizado com o conceito "" e "".

Parsing é o ato de percorrer um bloco de texto, um pedaço de cada vez, onde um pedaço pode ser tão pequeno quanto uma letra ou tão grande quanto o bloco inteiro.

Vamos usar a string abaixo como nosso bloco de texto de exemplo:

"The quick brown fox jumps over the lazy dog"

Digamos que queremos extrair cada uma das palavras individuais da string acima.

As ferramentas que usaremos serão

  1. o subtexto, e

  2. o percorredor

Um percorredor é definido da seguinte forma:

Um percorredor é uma estrutura com 
  Uma cópia da string original,
  Um segmento final e
  Um segmento inicial.

Uma cópia da string original é um subtexto. 
Um segmento inicial é um subtexto. 
Um segmento final é um subtexto.

Quando você "lançar" um subtexto na string acima, o compilador irá definir o caractere inicial do subtexto como "T" (da palavra The) e o caractere inicial como "g" (da palavra dog).

Ao usar o comando:

"Lance um percorredor sobre o subtexto"

Os membros do percorredor ficarão assim:

  • cópia da string original = "The quick brown fox jumps over the lazy dog"

  • segmento inicial = ""

  • segmento final = "The quick brown fox jumps over the lazy dog"

A partir daí podemos invocar a rotina

Mova o percorredor (strings com aspas).

Neste momento, os membros do percorredor ficarão assim:

  • cópia da string original = "The quick brown fox jumps over the lazy dog"

  • segmento inicial = "The"

  • segmento final = "quick brown fox jumps over the lazy dog"

Se reperirmos o comando, os membros do percorredor ficarão assim:

  • cópia da string original = "The quick brown fox jumps over the lazy dog"

  • segmento inicial = "quick"

  • segmento final = "brown fox jumps over the lazy dog"

Perceba que o "The" foi "removido" do segmento inicial.

Outra rotina útil que serve para percorrer uma string caractere a caractere é:

Avance o percorredor.

Digamos que o nosso percorredor esteja assim:

  • cópia da string original = "The quick brown fox jumps over the lazy dog"

  • segmento inicial = ""

  • segmento final = "The quick brown fox jumps over the lazy dog"

Ao usar a rotina "avance um percorredor", nosso percorredor ficará assim:

  • cópia da string original = "The quick brown fox jumps over the lazy dog"

  • segmento inicial = "T"

  • segmento final = "he quick brown fox jumps over the lazy dog"

Importante:

Subtextos contém ponteiros para os caracteres então precisamos usar a seguinte sintaxe para obter o valor do dado em si:

O conteúdo deste caractere inicial deste segmento inicial deste percorredor.

É um tanto quanto prolixo, mas não há outra forma.

subtextos
strings