C/Visual C - contar cuantas veces se repiten ls letras d 1caden

 
Vista:

contar cuantas veces se repiten ls letras d 1caden

Publicado por Esteban (1 intervención) el 23/09/2006 20:26:27
Hola gente, estoi estudiando DAI i me han mandado un ejercicio en el cual me piden contar las letras que contiene una frase guardada en una cadena, esta frase a sido extraida de un fichero plano. Se debe hacer con ASCII pero no encuentro la manera de guardar las veces k se repite cada letra sin tener que hacer mogollon de if's i de varibles.
SI alguien sabe algo.. que me lo comente o se ponga en contacto cnmigo, mi email es [email protected] merci!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:contar cuantas veces se repiten ls letras d 1ca

Publicado por fdfs (1 intervención) el 23/09/2006 20:42:57
fdsfdsfsdfds
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:contar cuantas veces se repiten ls letras d 1ca

Publicado por Eduardo Negrete (76 intervenciones) el 24/09/2006 01:28:49
Mira Hace unos dias respondi una nota y el problema era el siguiente:

Se Tenia un archivo .txt con un texto y se iva a leer caracter por caracter y contar cuantas veces se repetia cada letra del abecedario.

Te pongo el ejemplo haber si te sirve

#include <stdio.h>
#include <conio.h>
#include <ctype.h>

int main(void)
{
FILE *fp;
int caracter, i;
int abecedario[26]; // abcdefghijklmnopqrstuvwxyz

// Inicializa El Vector En Cero
for ( i = 0; i < 26; i++ )
abecedario[i] = 0;

fp = fopen(".\\Ejemplo.txt", "r");
// Parametros De Entrada De La Funcion
// Ruta Y Nombre Del Archivo A Abrir
// El Modo En El Que Se Abrira El Archivo
// En Este Caso En Modo Lectura

while( !feof(fp) ) // Deteccion De Fin De Archivo
{
// Lee Un Caracter Del Archivo Y Lo Convierte A Minusculas
caracter = tolower( fgetc( fp ) );

// Verifica Si El Caracter Pertenece Al Abecedario
if ( caracter >= 97 && caracter <= 122)
abecedario[caracter - 97]++;
}

fclose( fp ); // Cierra El Archivo

// Despliega El Numero De Veces Que Aparecio Cada Caracter Del Abecedario
for ( i = 0; i < 26; i++ )
{
printf("La Letra '%c' Aparecio %d Veces\n", i + 97, abecedario[i] );
getche();
}

return 0;
}

Espero Te Sirva!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:contar cuantas veces se repiten ls letras d 1ca

Publicado por h0aX (9 intervenciones) el 27/09/2006 16:49:33
Lo escribi en borland c++ 6
esta es la unit completa.La verdad que me parecio interesante
el ejercicio y mas en un dia de ocio en el trabajo como hoy.
Lo que hace mi codigo es contar a partir de la funcion
CuentaLetras la cantidad de veces que se repite una letra
en un cadena, luego hace un llamado para cada letra en un ciclo for
y lo va imprimiendo en un memo.Veras que no solo lee la parte visible
de la tabla ascii, esto si quieres puedes modificarlo aunque yo lo preferiria asi
La funciuon CuetaLetras recibe la cadena como primer parametro y la letra que va
leer como segundo para devolver el numero de veces que se repite.
Espero que te sirva de algo.

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
int CuentaLetras(String Cadena,char Letra)
{

int Letras[255];

for (int i = 0; i< 255; i++)
{
Letras[i] = 0;
}

for (int i = 1; i<= Cadena.Length(); i++)
{
Letras[byte(Cadena[i])]++;
}

return Letras[byte(Letra)];
}

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
String sTemp = "Cantidad de ";
for (int i=1; i<255; i++)
{
String sTemp = "Cantidad de ";
sTemp = sTemp + char(i);
sTemp = sTemp +" ";
Memo1->Lines->Add(sTemp+IntToStr(CuentaLetras(Edit1->Text,char(i))));
}
}
//---------------------------------------------------------------------------
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar