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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Contar y comparar palabras en lenguaje c
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Contar y comparar palabras en lenguaje c  (Leído 11,959 veces)
martha71404

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Contar y comparar palabras en lenguaje c
« en: 20 Octubre 2015, 22:37 pm »

Hola Buanas tardes intento hacer un programa en donde quiero que comprare las palabras
y cuando este encuentre una palabra repetida  la imprima y que le sume 1 y si encuentra otra que sea 2 etc..

ejemplo

hola hola mundo

respuesta

Palabras repetidas 2

 solo quiero que me imprima el numero de veces que se repite cada palabra desde un archivo.txt

espero y me ayuden  saludos...



En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Contar y comparar palabras en lenguaje c
« Respuesta #1 en: 21 Octubre 2015, 05:41 am »

que llevas hecho? que no sabes?... el foro es para resolver dudas puntuales, di exactamente cuales son tus dudas y recuerda googlear de antemano


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

Desconectado Desconectado

Mensajes: 94


Ver Perfil
Re: Contar y comparar palabras en lenguaje c
« Respuesta #2 en: 22 Octubre 2015, 22:28 pm »

Puedes usar la librería String.h, y usar strtok(); para separar las palabras de un texto y después almacenarlas en un arreglo que vaya checando la primer palabra con la siguiente con strcmp(); y si son iguales marca en el contador repetidas++, si no ignora en las comparaciones y después si repetidas==0 pones no hay palabras repetidas, listo ya te di el algoritmo básicamente.
En línea

martha71404

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Contar y comparar palabras en lenguaje c
« Respuesta #3 en: 24 Octubre 2015, 02:12 am »

y en codigo c como seria no se nada de programacion estoy aprendiedo :( ayudenme pls
En línea

do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: Contar y comparar palabras en lenguaje c
« Respuesta #4 en: 24 Octubre 2015, 08:21 am »

No te preocupes, yo te ayudo, construye un árbol binario que almacene como campo clave una palabra en orden alfabético, y un segundo campo que controle las repeticiones.

¡Saludos!

PD: Si me he pasado con la ayuda lo siento, no era mi intención resolver el problema.
En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
Gunhack

Desconectado Desconectado

Mensajes: 42



Ver Perfil
Re: Contar y comparar palabras en lenguaje c
« Respuesta #5 en: 25 Octubre 2015, 21:21 pm »

Este es el código, solo le hace falta lo de cargar el archivo a la cadena pero eso te lo dejo a ti  ;D
Código
  1. #include <cstdio>
  2. #include <cstring>
  3. #include <ctype.h>
  4.  
  5. using namespace std;
  6.  
  7. int toLower(char *cadena); //Funcion que convierte toda la cadena a minúsculas y regresa el numero de palabras.
  8.  
  9. int main() {
  10.  
  11.  //Se crea la variable cadena tu puedes modificar el programa para que se cargue la cadena desde el archivo.
  12.  char cadena[] = {"Hola hola mundo, este programa cuenta cuantas palabras hay en esta cadena."};
  13.  char aux[strlen(cadena)]; //Variable auxiliar para mantener la cadena original.
  14.  
  15.  strcpy(aux, cadena); //Copiamos el contenido de la cadena original a la cadena auxiliar.
  16.  
  17.  int nPalabras = toLower(aux); // Variable que almacena el numero total de palabras en la cadena.
  18.  char tokens[nPalabras][30]; //Variable que almacena cada palabra en un espacio del arreglo.
  19.  char *token = strtok(aux, " ,.!?"); //Función que convierte una cadena a tokens.
  20.  
  21.  nPalabras = 0;
  22.  while(token != NULL) {
  23.  
  24.    strcpy(tokens[nPalabras++], token); //Se almacena cada token (palabra) en un espacio del arreglo.
  25.    token = strtok(NULL, " ,.-!?");
  26.  }
  27.  
  28.  int contPal[nPalabras]; //Variable que contiene el numero de repeticiones de cada palabra.
  29.  int palRep = 0; //Variable auxiliar para ingresar al indice de "contPal".
  30.  int suma = 0;
  31.  
  32.  for(int i = 0; i <nPalabras; i++) {
  33.    contPal[i] = 0;
  34.  }
  35.  
  36.  
  37.  for(int i = 0; i < nPalabras - 1; i++) { //Ciclo que compara si una palabra es igual a otra en los tokens.
  38.  
  39.    for(int j = i+1; j < nPalabras ; j++) {
  40.  
  41.      if(strcmp(tokens[i], tokens[j]) == 0 && strcmp(tokens[i], "*") != 0){
  42.  
  43.        strcpy(tokens[j],"*"); //Si una palabra es igual a otra dentro de la cadena cambia su valor a "*" para o ser tomada en cuenta la siguiente iteración.
  44.        contPal[palRep]++;
  45.      }
  46.    }
  47.  
  48.    if(strcmp(tokens[i], "*") != 0) { //Se saca la suma de las palabras repetidas.
  49.      suma +=  contPal[palRep];
  50.      palRep++;
  51.    }
  52.  }
  53.  
  54.  palRep = 0;
  55.  printf("%s\n\n", cadena);
  56.  printf("Las palabras repetidas son:\n\n");
  57.  for(int i = 0; i <nPalabras; i++) { // Muestra la palabra y su numero de repeticiones
  58.  
  59.    if(strcmp(tokens[i], "*") != 0 && contPal[palRep] != 0 ) {
  60.  
  61.      printf("%d) %s: %d Coincidencia(s).\n", palRep, tokens[i], contPal[palRep++]);
  62.    }
  63.  }
  64.  printf("\nTotal de palabras repetidas: %d\n\n", suma);
  65. }
  66.  
  67. int toLower(char *cadena) {
  68.  
  69.  int n = 0;
  70.  
  71.  for(int i = 0; i < strlen(cadena); i++) {
  72.  
  73.    cadena[i] = tolower(cadena[i]);
  74.    if(cadena[i] == ' ') {
  75.      n++;
  76.    }
  77.  }
  78.  
  79.  return n+1;
  80. }
  81.  
En línea

martha71404

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Contar y comparar palabras en lenguaje c
« Respuesta #6 en: 29 Octubre 2015, 02:36 am »

y ese mismo codigo sirve para implementarlo en la herramienta de flex??
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Código contar palabras?
Scripting
.;. 1 6,360 Último mensaje 19 Enero 2009, 22:17 pm
por AlbertoBSD
Ayuda programa en C contar palabras
Programación C/C++
joseh94 2 3,596 Último mensaje 12 Enero 2015, 18:46 pm
por ivancea96
Contar palabras batch
Scripting
alberto3_3 1 4,011 Último mensaje 11 Agosto 2015, 07:01 am
por santizuche
Problema con clase Tokenizer (contar palabras de un archivo de texto)
Java
jamatbar 2 3,389 Último mensaje 27 Enero 2016, 09:33 am
por jamatbar
contar numero de palabras de una cola en c
Programación C/C++
ArbolEnLLamas 0 2,289 Último mensaje 11 Noviembre 2016, 17:04 pm
por ArbolEnLLamas
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines