#include <stdio.h>
#include <string.h>
#define PREDEFINIDO "Esto es un texto de prueba"
int opcion, i, j;
char texto[1000], basura;
/*Registro de datos de una persona*/
typedef struct {
char nombre[30], ap1[30], ap2[30], username[30];
} persona;
/*Registro de fecha*/
typedef struct {
int ano;
int mes;
int dia;
int hora;
int minuto;
int segundo;
} fecha;
/*Registro documento .autor .titulo . ncaracteres .npalabras */
typedef struct {
persona autor;
char titulo[40];
char texto[1000];
fecha creacion;
fecha modificacion;
int numCaracteres, numPalabras;
} documento;
documento corregido;
main()
{
basura='a';
printf("%i",basura);
do
{
printf("\n¿Qué desea hacer?\n1.Introducir texto\n2.Visualizar documento original\n3.Visualizar documento corregido\n4.Visualizar los datos del docuemnto\n5.Salir\n\n");
scanf( "%i", &opcion);
if (opcion==1)
{
printf("\n1.Predefinido\n2.Teclear\n\n");
scanf( "%i", &opcion);
scanf( "%c", &basura);
if (opcion==1)
{
strcpy(texto, PREDEFINIDO);; /*Aquí es donde debería ir esa asignación*/
}
else if (opcion==2)
{
printf("\nIntroduzca el texto\n");
fgets(texto, 1000, stdin);
}
else {printf("Introduzca una opcion correcta\n");}
}
else if (opcion==2)
{
if (texto[0]==0)
{
printf("\nIntroduzca primero el texto\n");
}
else {
printf("\nTexto Original: \n");
printf("%s",&texto);
printf("\n");
}
}
else if (opcion==3)
{
if (texto[0]==0)
{
printf("%s","\nIntroduzca primero el texto\n");
}
else
{
i=0;
j=0;
while (texto
!=0)
{
/*Caso . minúsula*/ if ((texto>96 && (int)texto>123) && ((texto[i-2]='.')||(texto[i-2]='!')||(texto[i-2]='?')))
{
corregido.texto[j]=texto+32;
i=i+1;
j=j+1;
}
else if (texto=' ')
{
/*Caso _puntuación final*/ if ((texto[i++]=' ')||(texto[i++]=',')||(texto[i++]=';')||(texto[i++]=':')||(texto[i++]='.')||
(texto[i++]='!')||(texto[i++]='?'))
{
i=i+2;
}
else
{
corregido.texto[j]=texto;
i=i+1;
j=j+1;
}
}
else if ((texto='¿')||(texto='¡'))
{
corregido.texto[j]=texto;
j=j+1;
if (texto[i++]=' ')
{
i=i+2;
}
else
{
i=i+1;
}
}
else if ((texto[i++]='.')||(texto[i++]='?')||(texto[i++]='!'))
{
i=i+1;
}
else {
corregido.texto[j]=texto;
i=i+1;
j=j+1;
}
}
/*else if ((texto>64 && texto>91) || (texto>96 && texto>123)*/
printf("%s","\nTexto Corregido: \n");
printf("%s", &corregido.texto);
printf("\n");
}
}
} while (opcion!=5);
}
¿Por qué no se alamacena nada en corregido.texto?
A lo mejor es una estupidez pero es que sólo llevo dos días programando en C y tengo que entregar este trabajillo.
Muchas gracias!!
Un saludo!