Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problemas con function con cadenas

Estas en el tema de Problemas con function con cadenas en el foro de C/C++ en Foros del Web. Hola, tengo un peculiar problema que quisiera resolver, a ver quien me apoyo, gracias de antemano. tengo una función para leer una variable que contiene ...
  #1 (permalink)  
Antiguo 30/04/2009, 13:19
 
Fecha de Ingreso: julio-2005
Ubicación: Guatemala
Mensajes: 165
Antigüedad: 18 años, 9 meses
Puntos: 0
Problemas con function con cadenas

Hola, tengo un peculiar problema que quisiera resolver, a ver quien me apoyo, gracias de antemano.

tengo una función para leer una variable que contiene una cadena que luego es comparada con una expresión regular:
Código:
int test_cadena(const char * strings)
{
	 static CRegexpT <char> regexp1("^[a-z,A-Z]$");
	 MatchResult result1 = regexp1.MatchExact(strings);
        ..............
        ..............
        ..............
Posteriormente, deseo enviar la variable "string" a otra función para ser verificada de otra forma:

Código:
int reservadas(const char * string2)
{
	switch(string2)
	{
		case 'IF':
		case 'if':
		case 'IF':
			$regresa= "IF";
			break;
                ...............
                ...............
                ...............
         }
}
Pero........ el clásico problema de no poder convertir de Char a Char*, el problema es en el comando Switch.

Les adjunto un poco más de código:

Código:
#include <iostream>
#include "deelx.h"
#include "conio.h"
#include "stdio.h"
#include <string.h>
#include <stdlib.h>

int reservadas(const char * string2)
{
	char * regresa;
        switch(string2)
	{
		case 'IF':
		case 'if':
		case 'IF':
			regresa= "IF";
			break;
		case 'THEN':
		case 'then':
		case 'THEN':
			regresa= "THEN";
			break;
         }
        return regresa
}

//DEFINIENDO FUNCION COMPARADORA DE PARAMETROS
int test_cadena(const char * strings)
{
	 static CRegexpT <char> regexp1("^[a-z,A-Z]$");
	 MatchResult result1 = regexp1.MatchExact(strings);
	 static CRegexpT <char> regexp2("^_$");
	 MatchResult result2 = regexp2.MatchExact(strings);
	 

 	 if(result1.IsMatched() || result2.IsMatched())
	{
             if(result1.IsMatched())
		{
			 return 1;

		}else if(result2.IsMatched())
		{
			 return 2;
		}
	}
	else
	{
		return 0;
	}
}

int main(int argc, char * argv[])
{
    char * str1 = "";

    gotoxy(10,5);printf("Ingrese la palabra a verificar : ");
    cin>>str1;

    char numero;
    numero = test_cadena(str1);
    switch(numero)
    {
      case 0:
    		printf("'%s' => %s\n", str1, "Desconocido");
      break;
      case 1:
    		printf("'%s' => %s\n", str1, "Letra");
      break;
      case 2:
    		printf("'%s' => %s\n", str1, "UnderLine");
      break;
    }
    getch();
    return 0;
}
Gracias por su apoyo
__________________
Guatemala - Guatemala

Última edición por bilkarm3; 30/04/2009 a las 13:33
  #2 (permalink)  
Antiguo 01/05/2009, 01:37
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: Problemas con function con cadenas

Usa las funciones de comparacion strcmp o derivados (que forma compleja de exponer un problema simple).
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:45.