Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Matahembras

#1
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 (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>

void CorregirPalabras(FILE *p, char *cadena);

void main()
{
char nombre[30]="";

FILE *ptrentrada,*ptrsalida;

if ((ptrentrada = fopen("redaccion.txt","r"))==NULL)
printf("El archivo no puede abrirse\n");
else
{
ptrsalida=fopen("corregido.txt","w+");
while (!feof(ptrentrada))
{

fscanf(ptrentrada,"%s",nombre);

CorregirPalabras(ptrsalida,nombre);
nombre[0]='\0';
}
fclose(ptrentrada);
fclose(ptrsalida);
}
}


void CorregirPalabras(FILE *p, char *cadena)
{
char palabras[50];
char cadena1[50]="sh";
char cadena2[50]="ch";
while (!feof(p)){
fscanf(p,"%[^\n]s\n",palabras);
if (strchr(palabras,'y')==palabras)
strcpy(cadena1,"ies");
else if((strchr(palabras,'s')==palabras) || (strchr(palabras,'x')==palabras) || (strstr(palabras,cadena1)==palabras) || (strstr(palabras,cadena2)==palabras))
strcpy(cadena2,"es");
else
strcpy(cadena,"s");
}

}


Mod; Mensaje modificado, cuando publiques código usa etiquetas GeSHi