elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  contar numero de veces que sale la vocal a en una variable (batch)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: contar numero de veces que sale la vocal a en una variable (batch)  (Leído 3,998 veces)
alberto3_3

Desconectado Desconectado

Mensajes: 4


Ver Perfil
contar numero de veces que sale la vocal a en una variable (batch)
« en: 2 Julio 2015, 19:18 pm »

Hola a todos.

Tengo que hacer un script que pida al usuario una frase y cuente el numero de veces que sale la a en esa frase tanto en mayúsculas como en minúsculas y hasta ahora va bien pero no me sale la parte de contar la letra a en la variable, para contar usaría un contador, lo que no se es como hacer la comparación carácter a carácter de la frase y si hay "a" que agregue +1 al contador.

Alguna idea?

Gracias por adelantado!  ;D


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: contar numero de veces que sale la vocal a en una variable (batch)
« Respuesta #1 en: 2 Julio 2015, 19:19 pm »

muestra tu código


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
alberto3_3

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: contar numero de veces que sale la vocal a en una variable (batch)
« Respuesta #2 en: 2 Julio 2015, 19:46 pm »

Código
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. :inicio
  4. cls
  5. set /p frase=Escribe una frase ?
  6. if "%frase%" EQU "" goto inicio
  7. set /a contador=0
  8. for /l %%a in (0,1,1000) do (
  9.  
  10. )
  11. :salida
  12. echo La frase %frase% tiene %contador% letras a.
  13. pause>nul
« Última modificación: 2 Julio 2015, 20:10 pm por Eleкtro » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.817



Ver Perfil
Re: contar numero de veces que sale la vocal a en una variable (batch)
« Respuesta #3 en: 2 Julio 2015, 20:09 pm »

Batch es ridiculamente limitado, no es posible una iteración de caracteres ya que no existe ese tipo de loop, entonces, debes idear técnicas alternativas para llevar a cabo ese tipo de tarea, por ejemplo con un un For range (For /L) substrayendo cada caracter del string y defininendo un terminador de string, es decir, hay que añadirle un caracter especial al final del string para saber cuando salir de la iteración, al encontrar ese caracter especial.

Ejemplo:
Código
  1. @Echo OFF & Setlocal EnableDelayedExpansion
  2.  
  3. Set    "finalizer=Ç"
  4. Set /A "mayusCount=0"
  5. Set /A "minusCount=0"
  6.  
  7. Echo: Type any string...
  8. Set /P "str=>> "
  9.  
  10. Set "str=%str%%finalizer%"
  11.  
  12. For /L %%c In (0, 1, 99998) Do (
  13. Set "char=!str:~%%c,1!"
  14. If "!char!" EQU "A" (Set /A "mayusCount+=1")
  15. If "!char!" EQU "a" (Set /A "minusCount+=1")
  16. If "!char!" EQU "%finalizer%" (Goto :Break)
  17. <Nul set /P "char=!char!"
  18. )
  19.  
  20. :Break
  21. Echo+ | More
  22. Echo: "A" count: %mayusCount%
  23. Echo: "a" count: %minusCount%
  24.  
  25. Pause&Exit /B 0

Saludos
« Última modificación: 2 Julio 2015, 20:13 pm por Eleкtro » En línea

alberto3_3

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: contar numero de veces que sale la vocal a en una variable (batch)
« Respuesta #4 en: 6 Julio 2015, 17:34 pm »

Gracias por la respuesta, al final lo hice con un contador común para las letras mayúsculas y minúsculas,quedando asi:

Código:
setlocal enabledelayedexpansion
@echo off
:volver
cls
set /p frase=Escribe una frase :
if "%frase%" EQU "" goto volver
set /a contador=0
for /l %%a in (0,1,10000) do (
if "!frase:~%%a,1!" EQU "" goto salida
if "!frase:~%%a,1!" EQU "a" (set /a contador=!contador!+1)
if "!frase:~%%a,1!" EQU "A" (set /a contador=!contador!+1)
)
:salida
echo la frase %frase% tiene %contador% letras a.
pause>nul
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines