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