Ir ao conteúdo

Posts recomendados

Postado

Ola, estou com uma duvida galera, tenho q fazer um trabalho de programaçao que o usuario escreva um texto e depois uma palavra e mostre qnts vezes ele repitiu essa palavra no texto, usando o LUA pelo ZeroBrane, estou com problemas porque nao consigo atribuir o comando string.len ao ioread da palavra digitada, aqui esta o q eu fiz, sou bem novo nisso desculpem

 

print("Digite seu texto")
t=io.read("*l")
print("Palavra")
p = io.read("*l")
caracteres = string.len("p")
print("Caracteres: "..caracteres)

 

  • Moderador
Postado

@nabeira Olá, seja bem vindo em nosso Clube do Hardware.

 

Eu não conheço muito de lua, mas posso dizer que no read não precisa por o argumento.

O string.len() conta a quantidade de caracteres de uma palavra. No caso seu exercício, pelo que entendi você quer mostrar a quantidade de ocorrências de uma palavra dentro de um texto, onde o texto e a palavra serão digitadas pelo usuário.

Então não precisa usar o len.  Podes utilizar o string.gsub() que leva 3 parâmetros, onde o primeiro é a variável do texto, o segundo é a variável da palavra  e o terceiro você deixa em branco pois é opcional.

 

Depois é só dar um print na variável criada para a quantidade de palavra encontrada

Seu código corrigido:

io.write("Digite um texto: ")
texto = io.read()

io.write("Digite a palavra que quer procurar: ")
palavra = io.read()

local _, qtd_palavra = string.gsub(texto, palavra, "")

print("A palavra " .. palavra .." foi repetida " .. qtd_palavra .." vez(es)")

 

Basicamente usei o io.write()  para poder digitar o texto na mesma linha da pergunta.

A variável "texto" recebe o io.read() responsável por guardar o valor digitado nesta variável.

 

O mesmo para a variável "palavra" . estamos o valor digitado nesta variável.

Depois criamos uma variável local chamada qtd_palavras, que recebe a string.gsub(). Ela é muito poderosa que pode ser usado de várias maneiras, porém, a que lhe interessa é que ela retorna o valor de todas ocorrências do que estiver procurando.

 

No caso, se o texto for:  "Esta frase de teste serve para contar quantas vezes a palavra teste foi repetida."

palavra: "teste"

 

Vai retornar a seguinte frase: " A palavra teste foi repetida 2 vez(es)

 

Fonte: https://www.lua.org/manual/5.1/pt/manual.html#pdf-string.gsub

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!