elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Programa no cierra
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programa no cierra  (Leído 1,654 veces)
andoporto

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Programa no cierra
« en: 7 Febrero 2015, 18:04 pm »

Hola gente, el siguiente programa me funciona correctamente pero no sale, no me tira errores ni warnings, se "congela" el programa, que puede ser?

Código:
#include <stdio.h>
#include <stdlib.h>

#define esBlanco(x)((x)==' '||(x)=='\t')
#define aMayusc(x)((x)>='a'&&(x)<='z'?(x)-32:(x))
#define aMinusc(x)((x)>='A'&&(x)<='Z'?(x)+32:(x))

char* normalizar (char *);
char* normalizar2 (char *);
char* normalizar3 (char *);
char* normalizar4 (char *);

int main()
{
    char cad1[100]={"\t UN\teJEmPlo   ADeCUAdo\t  "};
char cad11[100]={"\t                UN\teJEmPlo   aDeCUAdo  "};
char cad12[100]={"\t                UN EJEMPLO   ADECUADO  "};
    char cad2[100]={"   "};
    char cad3[100]={"\tUufFFc Jf \t\t  "};
char cad31[100]={"\tUUUUUfff JfeY78u \t\t  "};
    printf("\"%s\"\n",normalizar(cad1));
printf("\"%s\"\n",normalizar(cad11));
printf("\"%s\"\n",normalizar(cad12));
    printf("\"%s\"\n",normalizar(cad2));
    printf("\"%s\"\n",normalizar(cad3));
printf("\"%s\"\n",normalizar(cad31));
printf("\n ----------------------------------------------------------------------------\n");
char cad4[100]={"\t UN\teJEmPlo   ADeCUAdo\t  "};
    char cad5[100]={"   "};
    char cad6[100]={"\tUufFFc Jf \t\t  "};
printf("\"%s\"\n",normalizar2(cad4));
    printf("\"%s\"\n",normalizar2(cad5));
    printf("\"%s\"\n",normalizar2(cad6));
    printf("\n ----------------------------------------------------------------------------\n");
    char cad7[100]={"\t UN\teJEmPlo   ADeCUAdo\t  "};
    char cad8[100]={"   "};
    char cad9[100]={"\tUufFFc Jf \t\t  "};
    printf("\"%s\"\n",normalizar3(cad7));
    printf("\"%s\"\n",normalizar3(cad8));
    printf("\"%s\"\n",normalizar3(cad9));
    printf("\n ----------------------------------------------------------------------------\n");
    char cad101[100]={"\t UN\teJEmPlo   ADeCUAdo\t  "};
    char cad111[100]={"   "};
    char cad121[100]={"\tUufFFc Jf \t\t  "};
    printf("\"%s\"\n",normalizar4(cad101));
    printf("\"%s\"\n",normalizar4(cad111));
    printf("\"%s\"\n",normalizar4(cad121));
    printf("\n");
    return 0;
}

char * normalizar (char * cad)
{
    char*pe,*pl; //puntero escritura, puntero lectura
    pe=pl=cad;
    while(*pl)
    {
        while(esBlanco(*pl)&&*pl)
            pl++;
        if(*pl)
        {
            *pe=aMayusc(*pl);
            pe++;
            pl++;
            while(*pl&&!esBlanco(*pl))
            {
                *pe=aMinusc(*pl);
                pe++;
                pl++;
            }
            if(esBlanco(*pl))
            {
                *pe=' ';
                pe++;
                pl++;
            }
        }
    }
    if(pe>cad) //eliminar el ultimo blanco, si todos fueran blancos no retrocede
         pe--;
    *pe='\0';
    return cad;
}

char * normalizar2 (char * cad)
{
    char*pe,*pl; //puntero escritura, puntero lectura
    pe=pl=cad;
    while(*pl)
    {
        while(esBlanco(*pl)&&*pl)
            pl++;
        if(*pl)
        {
            *pe=aMinusc(*pl);
            pe++;
            pl++;
            while(*pl&&!esBlanco(*pl))
            {
                *pe=aMinusc(*pl);
                pe++;
                pl++;
            }
            if(esBlanco(*pl))
            {
                *pe=' ';
                pe++;
                pl++;
            }
        }
    }
    if(pe>cad) //eliminar el ultimo blanco, si todos fueran blancos no retrocede
         pe--;
    *pe='\0';
    return cad;
}


char * normalizar3 (char * cad)
{
    char*pe,*pl; //puntero escritura, puntero lectura
    pe=pl=cad;
    while(*pl)
    {
        while(esBlanco(*pl)&&*pl)
            pl++;
        if(*pl)
        {
            *pe=aMayusc(*pl);
            pe++;
            pl++;
            while(*pl&&!esBlanco(*pl))
            {
                *pe=aMayusc(*pl);
                pe++;
                pl++;
            }
            if(esBlanco(*pl))
            {
                *pe=' ';
                pe++;
                pl++;
            }
        }
    }
    if(pe>cad) //eliminar el ultimo blanco, si todos fueran blancos no retrocede
         pe--;
    *pe='\0';
    return cad;
}

char * normalizar4 (char * cad)
{
    char*pe,*pl; //puntero escritura, puntero lectura
    pe=pl=cad;
    while(*pl)
    {
        int bande=0;
        while(esBlanco(*pl)&&*pl)
            pl++;
        if(*pl && bande==1)
        {
            *pe=aMayusc(*pl);
            pe++;
            pl++;
            while(*pl&&!esBlanco(*pl))
            {
                *pe=aMinusc(*pl);
                pe++;
                pl++;
            }
            if(esBlanco(*pl))
            {
                *pe=' ';
                pe++;
                pl++;
            }
        }
        //bande++;
    }
    if(pe>cad) //eliminar el ultimo blanco, si todos fueran blancos no retrocede
         pe--;
    *pe='\0';
    return cad;
}


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Programa no cierra
« Respuesta #1 en: 7 Febrero 2015, 19:57 pm »

ciclo infinito...
usa el debugger del ide para poder conseguirlo (o hazle un printf en las funciones a ver cual se tranca)


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con Programa que se cierra al modificarlo
Ingeniería Inversa
N0mada 8 5,161 Último mensaje 31 Octubre 2009, 14:21 pm
por N0mada
[?][c++]cout << fu1(5); se cierra el programa
Programación C/C++
anonimo12121 5 5,137 Último mensaje 19 Febrero 2011, 14:01 pm
por anonimo12121
Programa que se cierra a los 10 minutos
Ingeniería Inversa
Y2Quake 2 3,108 Último mensaje 11 Enero 2012, 05:36 am
por tena
el programa se cierra solo
Programación C/C++
zarkaz 3 3,755 Último mensaje 24 Marzo 2012, 03:15 am
por Runex
Golpe a la piratería de Blu-ray y DVD,cierra la web del programa de ripeo AnyDVD
Noticias
wolfbcn 2 2,526 Último mensaje 24 Febrero 2016, 21:51 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines