| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
jparrot2
Registrado: 03 Oct 2012 Mensajes: 45
| Publicado: 28/12/2012 3:00 pm | | | Título: Contar el numero de veces que aparece un palabra |
| Hola, tengo que hacer un programa que cuente el numero de veces que aparece una palabra en un texto introducido. tengo el siguiente codigo:
| Código: | #include <stdio.h> #include <stdlib.h> #define MAX 100 #define tmpMAX 25
typedef enum{fals,cert} bolea;
int main() { char text[MAX+1],parbus[tmpMAX+1],paraulaTmp[tmpMAX+1]; int index,index2,index3,cops=0; bolea trobat;
trobat=fals; index=0; index2=0; index3=0; parbus[index3]='\0'; text[index]='\0'; paraulaTmp[index2]='\0';
printf("Introduiex un text: \n"); scanf("%100[^\n]",text);while(getchar()!='\n'); printf("Introduiex la paraula a comptar: \n"); scanf("%25[^\n]",parbus);while(getchar()!='\n');
while(text[index]==' ')index++;
while(text[index]!='\0'){
//copiar text a paraulaTmp
while(text[index]!=' ' && text[index]!='\0'){
paraulaTmp[index2]=text[index];
index++; index2++;
} paraulaTmp[index2]='\0';
//Compara paraules
trobat=cert;
for(index3=0;index3<index2;index3++){
if(paraulaTmp[index3]!=parbus[index3]){ trobat=fals;break; } }
if(parbus[index3]!='\0')trobat=fals;
while(text[index]==' ')index++;
paraulaTmp[0]='\0';index3=0;
index2=0; if(trobat)cops++; }
if(trobat)printf("La paraula %s apareix %d cops.\n",parbus,cops); if(!trobat)printf("Paraula no trobada!!\n");
return 0;
} |
un saludo PD: Me podrian decir en que estava fallando |
| | Volver arriba | |  | jparrot2
Registrado: 03 Oct 2012 Mensajes: 45
| Publicado: 29/12/2012 5:00 am | | | Título: |
| Ya lo tengo:
| Código: | #include <stdio.h> #include <stdlib.h> #define MAX 100 #define tmpMAX 25
typedef enum{fals,cert} bolea;
int main() { char text[MAX+1],parbus[tmpMAX+1],paraulaTmp[tmpMAX+1]; int index,index2,index3,cops=0; bolea trobat;
trobat=fals; index=0; index2=0; index3=0; parbus[index3]='\0'; text[index]='\0'; paraulaTmp[index2]='\0';
printf("Introduiex un text: \n"); scanf("%100[^\n]",text);while(getchar()!='\n'); printf("Introduiex la paraula a comptar: \n"); scanf("%25[^\n]",parbus);while(getchar()!='\n');
while(text[index]==' ')index++;
while(text[index]!='\0'){
//copiar text a paraulaTmp
while(text[index]!=' ' && text[index]!='\0'){
paraulaTmp[index2]=text[index];
index++; index2++;
} paraulaTmp[index2]='\0';
//Compara paraules
trobat=cert;
for(index3=0;index3<index2;index3++){
if(paraulaTmp[index3]!=parbus[index3]){ trobat=fals;break; } }
if(parbus[index3]!='\0')trobat=fals;
while(text[index]==' ')index++;
paraulaTmp[0]='\0';index3=0;
index2=0; if(trobat)cops++; }
if(cops==0)printf("Paraula no trobada\n"); if(cops>1)printf("La paraula %s apareix %d cops.\n",parbus,cops); if(cops==1)printf("La paraula %s apareix %d cop.\n",parbus,cops);
return 0;
} |
|
| | Volver arriba | |  | Masakre
Registrado: 06 Jun 2012 Mensajes: 245
| Publicado: 29/12/2012 11:22 am | | | Título: |
| Bueno, no es exactamente lo mismo que tu ejercicio, pero como guarda cierta relación, de todos modos lo adjunto (en un futuro podría servirle a alguien):
| Código: | // Ramos Suyón, JC. #include <iostream> #include <fstream> #include <string> using namespace std;
int contarWords(string);
int main() { string s; int words=0; ifstream ficheroE("text.txt"); if(!ficheroE.is_open()) { cout<<"Imposible abrir el archivo de texto text.txt\n" "Verifique su existencia en el directorio del programa.\n"; return 0; } while(getline(ficheroE, s)) // Mientras se lean líneas, if(s.size()) // si presenta elementos, words+=contarWords(s); // los contamos. cout<<"En text.txt se encontraron "<<words<<" palabras.\n\n"; return 0; }
int contarWords(string s){ int i=0, words=0; while(i<s.size()){ // Se asegura de recorrer toda la línea. while(s[i++]==' '); // Obvia espacios en blanco. if(i<s.size()) // Si aún queda por recorrer, { words++; // cuenta esta palabra while(s[i++]!=' ' && i<s.size()); // y se posiciona al final de la misma. } } return words; } |
El enunciado es:
| Cita: | | 3. Cree un programa que abra un fichero y cuente las palabras que contiene. |
(Pág 76 - Thinking in C++) |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |