C/Visual C - Ejercicio de C en LINUX

 
Vista:

Ejercicio de C en LINUX

Publicado por Fernando (1 intervención) el 18/05/2005 18:28:49
Hola,
Tengo que hacer este ejercicio.

Crear un programa que tenga un menú, en el que se permitan las siguientes opciones:

A partir de un fichero de texto.
1.- Contar las vocales, mayusculas y minúsculas. Hay que mostrar por pantalla cuantas apariciones hay de cada vocal.

2.- Sumar todos los números que aparezcan. Se supone que todos los números estan dentro del rango de los enteros.

3.- Dada una palabra introducida por teclado, mostrar por pantalla si la palabra se repite una o más veces dentro del fichero. Utilizar un esquema algorítmico apropiado.

4.- Crea un segundo fichero que contenga todas las palabras del primer fichero pasadas a mayuscula, no hay que copiar los números.

5.- Salir del programa

Y esto es lo que tengo echo.

#include <stdio.h>

void abrir(char ruta[]);

void pasa_a_mayusculas(char []);
char mayuscula(char);

char menu();

void main ()
{
char ruta [100];
char op;
do{
op=menu();
switch (op){
case '1':
comptar(ruta);
break;
case '2':
sumar(ruta);
break;
case '3':
repetida(ruta);
break;
case '4':
pasar(ruta);
break;
}
}while (op!='5');
}

char menu()
{
abrir;
char op;
printf ("1-Comptar vocals.\n");
printf ("2-Sumar tots els números que apareguin.\n");
printf ("3-Buscar paraules repetides.\n");
printf ("4-Pasar a majuscules")
printf ("5-Salir\n");
scanf ("%c", &op);
return op;
}

void abrir(char ruta[])
{

FILE *fichero;
printf ("Introduzca la ruta absoluta del archivo a leer:");
scanf ("%s", ruta);
fichero = fopen (ruta, "wt");
fclose (fichero);
}

void comptar(char ruta[])
{
char frase[80];
int pos=0, as=0, es=0, is=0, os=0, us=0;

fichero=fopen (ruta, "r+");
while (!feof(fichero))

FREAD!!?
SEPARAR PALABRAS DEL FICHERO

do{
switch (frase[pos])
{
case (frase[pos]=='a' | 'A'): as++;
case (frase[pos]=='e' | 'E'): es++;
case (frase[pos]=='i' | 'I'): is++;
case (frase[pos]=='o' | 'O'): os++;
case (frase[pos]=='u' | 'U'): us++;
pos++;
}
while (frase[pos]!='\0')
}

printf(" Hay %d a\n Hay %d e\n Hay %d i\n Hay %d o\n Hay %d u\n",as,es,is,os,us);

}

COMPARAR REPETIDAS
{
int repetida=0;
char palabra[50];
printf ("Introduzca una palabra:");
scanf ("%s", &palabra);
fichero=fopen (ruta, "r+");
while (!feof(fichero))
strcmp(&palabra)
repetida++;

if (repetida!=0)
printf("La paraula %s esta repetida &d vegades", ¶ula, repetida);
else
printf("La paraula no hi es");
}

PASAR A MAYUSCULAS
void main()
{
char palabra[50];
printf ("Introduzca una palabra:");
scanf ("%s", &palabra);
pasa_a_mayusculas (palabra);

}

void pasa_a_mayusculas(char frase[50])
{
int i;
for (i=0;frase[i]!='\0';i++) frase[i]=mayuscula(frase[i]);
printf ("%s\n", frase);
}

char mayuscula (char letra)
{
if (letra>='a' && letra<='z')
letra-=32;
return letra;
}

Me falta rellenar los huecos. Una ayudita porfa!
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