Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/02/2015, 14:03
Matahembras
 
Fecha de Ingreso: febrero-2015
Mensajes: 1
Antigüedad: 9 años, 10 meses
Puntos: 0
Pregunta Codigo C Archivos A-Y-U-D-A

Buenas con todos me podrian ayudar porfavor en este codigo no se tengo un error pero no se cual es :( si me ayudarian corrigiendo les agradeceria mucho.

Escriba un programa que dado el archivo redacción.txt, el cual contiene palabras en inglés, genera el archivo corregido.txt con su respectivo plural.
Para formar el plural se han definido las siguientes reglas:
- Si la palabra termina en “y”, remueva “y” y agregue “ies”. Por ejemplo: baby quedaría convertido en babies
- Si la palabra termina en “s”, “x”, “ch” o “sh” añada “es”. Por ejemplo: box quedaría convertido en boxes.
- Para todos los demás agregue “s”

Código C:
Ver original
  1. include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <string.h>
  5.  
  6. void CorregirPalabras(FILE *p, char *cadena);
  7.  
  8. void main()
  9. {
  10.     char nombre[30]="";
  11.  
  12.     FILE *ptrentrada,*ptrsalida;
  13.  
  14.     if ((ptrentrada = fopen("redaccion.txt","r"))==NULL)
  15.         printf("El archivo no puede abrirse\n");
  16.     else
  17.     {
  18.         ptrsalida=fopen("corregido.txt","w+");
  19.         while (!feof(ptrentrada))
  20.         {
  21.  
  22.             fscanf(ptrentrada,"%s",nombre);
  23.  
  24.             CorregirPalabras(ptrsalida,nombre);
  25.             nombre[0]='\0';
  26.         }
  27.         fclose(ptrentrada);
  28.         fclose(ptrsalida);
  29.     }          
  30. }
  31.  
  32.  
  33. void CorregirPalabras(FILE *p, char *cadena)
  34. {
  35.     char palabras[50];
  36.     char cadena1[50]="sh";
  37.     char cadena2[50]="ch";
  38.     while (!feof(p)){
  39.         fscanf(p,"%[^\n]s\n",palabras);
  40.         if (strchr(palabras,'y')==palabras)
  41.             strcpy(cadena1,"ies");
  42.         else if((strchr(palabras,'s')==palabras) || (strchr(palabras,'x')==palabras) || (strstr(palabras,cadena1)==palabras) || (strstr(palabras,cadena2)==palabras))
  43.             strcpy(cadena2,"es");
  44.         else
  45.             strcpy(cadena,"s");
  46.     }
  47.  
  48. }

Última edición por razpeitia; 15/02/2015 a las 21:01