Como Contar Palavras em uma String no Delphi

No Delphi, podemos criar uma função para contar o número de palavras em uma string fornecida.

Código da Função

A função WordsCount percorre a string, identificando palavras separadas por espaços.

function WordsCount(s: string): integer;
var
  ps: PChar;
  nSpaces, n: integer;
begin
  n := 0;
  s := Trim(s) + #0; // Remove espaços extras e adiciona um caractere nulo no final
  ps := @s[1];

  while ps^ <> #0 do
  begin
    // Ignora espaços em branco
    while (ps^ = ' ') and (ps^ <> #0) do
      Inc(ps);

    nSpaces := 0;
    
    // Conta os caracteres da palavra
    while (ps^ <> ' ') and (ps^ <> #0) do
    begin
      Inc(nSpaces);
      Inc(ps);
    end;

    // Se encontrou uma palavra, incrementa o contador
    if nSpaces > 0 then
      Inc(n);
  end;

  Result := n;
end;

Como Usar?

Para utilizar a função e contar palavras em um TMemo, por exemplo:

ShowMessage('Número de palavras: ' + IntToStr(WordsCount(Memo1.Text)));

Como Funciona?

  1. Remove espaços extras no início e no final da string.
  2. Percorre cada caractere, ignorando espaços.
  3. Conta palavras separadas por espaços.

Conclusão

Essa função é útil para contar palavras em textos, frases ou inputs de usuários. Pode ser aplicada em editores de texto, processadores de dados e muito mais.

Posts Similares