Autor
|
Tema: Contar y comparar palabras en lenguaje c (Leído 11,760 veces)
|
martha71404
Desconectado
Mensajes: 4
|
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
|
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
Mensajes: 94
|
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
Mensajes: 4
|
y en codigo c como seria no se nada de programacion estoy aprendiedo ayudenme pls
|
|
|
En línea
|
|
|
|
do-while
Desconectado
Mensajes: 1.276
¿Habra que sacarla de paseo?
|
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
Mensajes: 42
|
Este es el código, solo le hace falta lo de cargar el archivo a la cadena pero eso te lo dejo a ti #include <cstdio> #include <cstring> #include <ctype.h> using namespace std; int toLower(char *cadena); //Funcion que convierte toda la cadena a minúsculas y regresa el numero de palabras. int main() { //Se crea la variable cadena tu puedes modificar el programa para que se cargue la cadena desde el archivo. char cadena[] = {"Hola hola mundo, este programa cuenta cuantas palabras hay en esta cadena."}; char aux[strlen(cadena)]; //Variable auxiliar para mantener la cadena original. strcpy(aux, cadena); //Copiamos el contenido de la cadena original a la cadena auxiliar. int nPalabras = toLower(aux); // Variable que almacena el numero total de palabras en la cadena. char tokens[nPalabras][30]; //Variable que almacena cada palabra en un espacio del arreglo. char *token = strtok(aux, " ,.!?"); //Función que convierte una cadena a tokens. nPalabras = 0; while(token != NULL) { strcpy(tokens[nPalabras++], token); //Se almacena cada token (palabra) en un espacio del arreglo. token = strtok(NULL, " ,.-!?"); } int contPal[nPalabras]; //Variable que contiene el numero de repeticiones de cada palabra. int palRep = 0; //Variable auxiliar para ingresar al indice de "contPal". int suma = 0; for(int i = 0; i <nPalabras; i++) { contPal[i] = 0; } for(int i = 0; i < nPalabras - 1; i++) { //Ciclo que compara si una palabra es igual a otra en los tokens. for(int j = i+1; j < nPalabras ; j++) { if(strcmp(tokens[i], tokens[j]) == 0 && strcmp(tokens[i], "*") != 0){ 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. contPal[palRep]++; } } if(strcmp(tokens[i], "*") != 0) { //Se saca la suma de las palabras repetidas. suma += contPal[palRep]; palRep++; } } palRep = 0; printf("%s\n\n", cadena); printf("Las palabras repetidas son:\n\n"); for(int i = 0; i <nPalabras; i++) { // Muestra la palabra y su numero de repeticiones if(strcmp(tokens[i], "*") != 0 && contPal[palRep] != 0 ) { printf("%d) %s: %d Coincidencia(s).\n", palRep, tokens[i], contPal[palRep++]); } } printf("\nTotal de palabras repetidas: %d\n\n", suma); } int toLower(char *cadena) { int n = 0; for(int i = 0; i < strlen(cadena); i++) { cadena[i] = tolower(cadena[i]); if(cadena[i] == ' ') { n++; } } return n+1; }
|
|
|
En línea
|
|
|
|
martha71404
Desconectado
Mensajes: 4
|
y ese mismo codigo sirve para implementarlo en la herramienta de flex??
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
¿Código contar palabras?
Scripting
|
.;.
|
1
|
6,329
|
19 Enero 2009, 22:17 pm
por AlbertoBSD
|
|
|
Ayuda programa en C contar palabras
Programación C/C++
|
joseh94
|
2
|
3,536
|
12 Enero 2015, 18:46 pm
por ivancea96
|
|
|
Contar palabras batch
Scripting
|
alberto3_3
|
1
|
3,974
|
11 Agosto 2015, 07:01 am
por santizuche
|
|
|
Problema con clase Tokenizer (contar palabras de un archivo de texto)
Java
|
jamatbar
|
2
|
3,256
|
27 Enero 2016, 09:33 am
por jamatbar
|
|
|
contar numero de palabras de una cola en c
Programación C/C++
|
ArbolEnLLamas
|
0
|
2,242
|
11 Noviembre 2016, 17:04 pm
por ArbolEnLLamas
|
|