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

 

 


Tema destacado: Top 20 herramientas Hacking más populares de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Contar mayusculas de un array y diga cuantas de cada letra se encontró
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Contar mayusculas de un array y diga cuantas de cada letra se encontró  (Leído 12,628 veces)
alejandrodiaz

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Contar mayusculas de un array y diga cuantas de cada letra se encontró
« en: 14 Julio 2015, 12:30 pm »

Buenas a todos

Es mi segunda duda con respecto a arrays de caracteres, perdonen mi ignorancia, me estoy iniciando en programacion con C..

Tengo un ejercicio de arrays el cual dice:

Contar el numero de veces que cada letra mayuscula se producen en una linea de texto leida por el teclado y decir que caracteres se encontraron y cuantas veces se repitió cada uno.

He logrado hacer que cuente la cantidad de mayusculas encontradas a través de éste bucle

Código
  1. while(cadena[i] != NULL)
  2. {
  3. if ((cadena[i] >= 'A' && cadena[i] <= 'Z'))
  4. contador++;
  5.  
  6. i++;
  7. }

Pero no sé como hacer para que me diga cuantas veces se repitió A,B,C etc..

Estoy usando una cadena unidimensional para guardar el texto del teclado.

Otra cosa muy importante y es lo que me está impidiendo continuar, ¿como se hace para mostrar un caracter almacenado en un elemento del array?

Me gustaria que mostrará el mensaje como:

0=H
1=O
2=L
3=A

y asi conocer en que indice se encuentra cada caracter para despues comparar cada uno con un if /else if, pero sin resultado positivos, he intentado con:

Código
  1.    char cadena[20];
  2.    printf("ingrese una cadena:");
  3.    scanf("%s", cadena);
  4.  
  5.    int i=0;
  6.    for(i=0;i<20;i++){
  7.        cadena[i]=i;
  8.        printf("indice %d= %c\n",i,cadena[i])
  9.    }
  10.    getch();
  11.    return 0;

Eso es lo más cerca que he estado de conseguir la lista pero me muestra simbolos y caritas  :huh:

Espero me hayan entendido y me puedan orientar.

OJO: ya busque en el foro "programacion c/c++", como "mayusculas" y solo me muestra cinco post, ninguno como éste.


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.414


ASMático


Ver Perfil WWW
Re: Contar mayusculas de un array y diga cuantas de cada letra se encontró
« Respuesta #1 en: 14 Julio 2015, 13:00 pm »

Te muestra los símbolos porque pusiste:
Código
  1. cadena[i]=i;

Así, cada caracter es igual a un numero del 0 al 19 (cuya representación son caritas y símbolos). Son los caracteres no imprimibles. http://www.elcodigoascii.com.ar/


Para contar cuantoss hay de cada, lo que puedes hacer es hacer un array de int de 26 elementos (inicializados a 0), donde cada uno represente a una letra. Luego, cada vez que encuentres una letra, incrementas el correspondiente en el array. Puedes hacerlo con un switch de 26 cases, pero el mejor método es:
Código
  1. arrayLetras[cadena[i]-'A'] += 1;
Así, si cadena es una 'A', quedará como arrayLetras[0], que representa la A. Si es una B, arrayLetras[1], que es la B, y etc.


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