Ir ao conteúdo
  • Cadastre-se

Outro Duvia de programaçao em lua


Posts recomendados

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)

 

Link para o comentário
Compartilhar em outros sites

  • Moderador

@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

Link para o comentário
Compartilhar em outros sites

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...