• Sábado 14 de Diciembre de 2024, 17:55

Autor Tema:  Problema Al Guardar En Una Variable  (Leído 1150 veces)

huevofritopamojarpan

  • Nuevo Miembro
  • *
  • Mensajes: 22
    • Ver Perfil
Problema Al Guardar En Una Variable
« en: Viernes 4 de Abril de 2008, 02:34 »
0
#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?  :huh:
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!
 :hola:

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Problema Al Guardar En Una Variable
« Respuesta #1 en: Viernes 4 de Abril de 2008, 07:40 »
0
Primero, un par de recomendaciones: procura indentar tu código (o sea, usar sangrías), también, para escribir tu código en el foro utiliza las etiquetas apropiadas.

Ahora, en tu programa, revisa tus sentencias if, el símbolo para comparación es ==, no =, el cual es de asignación.
La imaginación es el límite.
Hardware & Software | Mexchip

huevofritopamojarpan

  • Nuevo Miembro
  • *
  • Mensajes: 22
    • Ver Perfil
Re: Problema Al Guardar En Una Variable
« Respuesta #2 en: Viernes 4 de Abril de 2008, 09:24 »
0
Ouch!
Muchas gracias pa empezar. En el original sí que que lo tengo sangrado, pero al enviarlo...
Corregiré eso y a ver si se soluciona.
Ya me olía yo que era un error estúpido. Pero es que llevo tan sólo un par de días programando en C, y vengo de MODULA-2...  :comp:

Un saludo!!
Agur!