Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/03/2008, 20:17
Bonaparta
 
Fecha de Ingreso: octubre-2007
Mensajes: 5
Antigüedad: 17 años, 3 meses
Puntos: 0
Core Dumped (C)

Hola, estoy tratando de crear esta micro aplicaciòn en C para identificar si la cadena ingresada es un comentario, un identificador, o ninguno.

Las convenciones son:

/*(cadena)*/ -> comentario
_(cadena) -> identificador

(cadena) _(cadena) */ -> ninguno de los dos

Cuando ejecuto el programa me tira "Fallo de segmentación (Core Dumped)", según tengo entendido se debe generalmente a un bug en el código; después de estar horas tratando de descubrir qué es no logro entender cuál es la falla.. así que agradecería si pudieran darme una mano.

El código es el siguiente:

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

int main()
{
    char cadena[] = "";
    char * cad;
    char * busqueda;
    char * busq;
    long int total_c;
    
    printf( "ingrese una oracion: " );
    scanf( "%s", cadena );

    busqueda = strstr( cadena, "/*" );
    
    if( busqueda != NULL )
    {
        busq = strrchr( cadena, '*' );
        
        total_c = busq - cadena;
        
        cad = &cadena[ total_c ];
        

        if( strcmp( cad, "*/" ) == 0 )
        {
            printf( "La cadena ingresada es un comentario." );
        }
    }
    else
    {
        busqueda = strstr( cadena, "_" );        
        
        if( busqueda != NULL )
        {    
             printf( "La cadena ingresada es un identificador." );
        }
        else
        {
             printf( "La cadena ingresada no es ni un comentario ni un identificador." );
        }
    }
    
    return 0;
}
Si sirve de algo, el sistema operativo que utilizo es Linux.

Desde ya, muchas gracias por su tiempo.