Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ayuda en c++ Urgente!!

Estas en el tema de Ayuda en c++ Urgente!! en el foro de C/C++ en Foros del Web. Hola por favor si alguien me puede ayudar a terminar este programa que comence, pero no se como hacer la funcion int cuentaPalabra(char*) por favor ...
  #1 (permalink)  
Antiguo 08/09/2008, 06:31
 
Fecha de Ingreso: septiembre-2008
Mensajes: 1
Antigüedad: 15 años, 8 meses
Puntos: 0
Ayuda en c++ Urgente!!

Hola por favor si alguien me puede ayudar a terminar este programa que comence, pero no se como hacer la funcion int cuentaPalabra(char*) por favor
es que falte a una clase y fue cuando explicaron eso y no lo puedo sacar...
aca les dejo el trabajo, y lo que hice:
realización de un programa que permita ingresar una frase en una cadena e informe la cantidad de palabras que la compone. El contar las palabras debe realizarse por medio de una función.


#include <stdio.h>
int contPalabrasEnArchivo(FILE*);
int cuentaPalabras(char*);


int main (void)
{
char mcad[]= "hola.txt";//cualquier archivo, ese es uno que me invente yo..
FILE*pat; int cant;
pat=fopen(mcad,"r");
if(pat==NULL)
{
printf("El archivo %s no puede abrirse\n",mcad);
return -1;
}
cant=cantPalabrasEnArchivo(pat);
printf("El archivo %s tiene %d palabras\n", macad, cant);
fclose(pat);
return 0;
}


int cantPalabrasEnArchivo (FILE*pf)
{
char cad[2000];
int cont=0;
fgets(cad,2000,pf);
while (!feof(pf));
{
cont=cuentaPalabras (cad);
fgets(cad,2000,pf);
}
return cont;
}

es urgente, lo tengo que entregar para el miercoles 10/09/08
gracias por su ayuda...
  #2 (permalink)  
Antiguo 08/09/2008, 07:05
Avatar de WaRc3L  
Fecha de Ingreso: agosto-2008
Ubicación: My House
Mensajes: 89
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Ayuda en c++ Urgente!!

Me puedes decir que hace la funcion cuentaPalabra?

Si lo que hace es contar las palabras, de una cadena caracteres, es facil.

Seguramente sabes, que toda cadena de caracteres acaba con un \0 no?, pues eso es lo importante.

Para contar los caracteres que hay en una cadena, lo primero que necesitas es la cadena en una matriz de chars ( que se puede combinar con los char* ).

Código:
char Cadena[100]; // Matriz de 100 bytes.
Despues, preguntar que cadena de caracteres quiere.

Yo hago servir el cin, puedes hacer servir el scanf, es lo mismo.

Código:
cin >> Cadena;
Quando tengas la cadena, puedes saber quantos caracteres hay en esa cadena haciendo lo siguiente:

Código:
for ( Tamaño_Cadena=0;Cadena[Tamaño_Cadena]!='\0';Tamaño_Cadena++);
En la variable Tamaño_Cadena, tendrias el numero de caracteres que hay en la cadena. Esto, lo implementas a la funcion, y retornas dicho valor.

Por cierto, no te lias con el parametro, los matrizes ( [] ) y los punteros (*
) a char, son practicamente lo mismo.

Saludos! Espero que te haya ayudado en algo, si no, hacmelo saber!
__________________
Habla tu lenguaje favorito! Habla C++!
  #3 (permalink)  
Antiguo 08/09/2008, 07:17
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: Ayuda en c++ Urgente!!

Para contar las palabras en una linea, creo que eso necesitas, tenes que buscar los espacio en la misma (y no te olvides de la primera y la ultima palabra) con strchr por ejemplo.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:09.