C ++ formas de convertir enum a cadena

C ++ formas de convertir enum a cadena
Un tipo de datos que se le puede asignar una lista de valores se conoce como tipo enumerado (enum). El usuario especifica los valores para él cuando se declara un tipo enumerado. El compilador arroja un error cuando asignamos un valor flotante a un valor de personaje. Del mismo modo, intentar asignar cualquier otro valor a los tipos de datos especificados da como resultado un error del compilador. Los valores del tipo de enumerador a veces se conocen como enumeradores. También se asigna un valor de cero, al igual que la matriz.

Enum es un tipo de datos que puede especificar el usuario que contiene constantes integrales. Para definirlo, utilizamos el modificador 'enum'. En este artículo, veremos cómo transferir ciertos valores de tipo enum a una cadena en C++. Se puede lograr convertir un enum en una cadena de varias maneras. Pasaremos por algunos de los métodos más eficientes y simples para convertir una enumación en una cadena. Este método representa una colección de números enteros de una manera menos propensa a errores y más legibles.

Ejemplo 1: Uso del método Stringify () para convertir enum en cadena en c ++:

El método macro Stringify () se usa para convertir un enum en una cadena. La deserencia variable y los reemplazos de macro no son necesarios con este método. Lo importante es que solo el texto incluido entre paréntesis puede convertirse utilizando el método Stringify ().

Demostremos la implementación del código. En el primer paso, hemos importado dos archivos estándar en la sección del encabezado. El primero es el archivo iostream y el segundo es el archivo definido stringify que pasa un argumento en él. Este archivo convierte los argumentos macro en literales de cadena sin extender el nombre del parámetro. El archivo STD del espacio de nombres también se incluye para la utilización de sus funciones.

Luego, hemos definido una clase de enum como un "universo" y contiene cuatro valores diferentes de tipo enum. Aquí, tenemos el primer valor enum en la posición 0, el segundo valor enum en la posición 1, y así sucesivamente, por defecto. Ahora, tenemos una clase de tipo de datos de caracteres como "Convert_enum []" donde llamamos método Stringify. El método Stringify toma valores del tipo enum y los convierte en una cadena.

Hemos creado una función como "DisplayItems" que imprimirá los valores almacenados en la clase Enum. Al final, hemos invocado la función principal que está llamando a la función "DisplayItems" y tomando la clase enum "Universo" como argumento. El valor del tipo enum se convertirá en una cadena utilizando este método.

#incluir
#define Stringify (nombre) #Name
usando el espacio de nombres STD;
universo enum

Tierra = 0,
Agua,
Aire,
Fuego
;
const char* convert_enum [] =

Stringify (Tierra),
Stringify (agua),
Stringify (aire),
Stringify (Fire)
;
Vacío DisplayItems (elemento universo)

cout<
int main ()

cout<< "Enum items are: "<DisplayItems ((universo) 0);
DisplayItems ((universo) 1);
DisplayItems ((universo) 2);
DisplayItems ((universo) 3);
regresar 0;

Los elementos que contienen la clase enum se muestran en la siguiente imagen y se convierten en la cadena:

Ejemplo2: Uso de la matriz constante Char* para convertir enum en cadena en c ++:

El uso de la matriz const char* es uno de los métodos más básicos para convertir un enum. Para acceder a los elementos de la matriz de cadenas, utilizaremos los valores predeterminados de Enum en este método.

Inicialmente, tenemos archivos de encabezado estándar en la sección de encabezado del siguiente programa. También tenemos un archivo STD de espacio de nombres para acceder a su función. Luego, hemos definido una clase de enum utilizando la palabra clave enum junto con el nombre de la clase. El nombre de la clase se representa como "Tipos de datos". La clase enum "Tipos de datos" contiene los cuatro elementos.

Después de eso, tenemos una matriz de puntero constante como "enumstr" que contiene los valores de cadena de un tipo enum. Por lo tanto, "enumstr []" es una matriz de cadenas que no se puede modificar. Luego, tenemos la función principal y en la función principal, tenemos un comando Cout que toma los valores de la matriz de cadenas "enumstr" e imprimiremos en la pantalla de inmediato.

#incluir
#incluir
usando el espacio de nombres STD;
Enum Datatypes Integer, String, Char, Float;
estatic const char *enumstr [] =
"Entero", "cadena", "char", "flotar";
int main ()
cout<cout<cout<cout<regresar 0;

El resultado que obtuvimos mediante el uso de la matriz de puntero de const Char en el programa anterior se muestra a continuación:

Ejemplo 3: Uso de la función definida para convertir enum en cadena en c ++:

También podemos implementar nuestra función que acepte un entero de la clase Enum como argumento y devuelve una cadena como salida.

El programa ha incluido la biblioteca C ++ requerida en el encabezado junto con el archivo STD Namespace. Después de esto, hemos creado una enumación con el modificador "enum". El enum se define con el nombre de "animal". El "animal" almacena cinco valores aleatorios de un tipo enum. Tenemos una matriz de puntero constante como "cadena enum" en la siguiente línea de código. Contiene una matriz de valores de cadena.

Luego, hemos definido una función personalizada como "convertToenum". Esta función está tomando Enum Integers como un argumento como "Val". La variable de cadena se llena dentro de la función con un elemento const char* de la matriz de cadenas enum. Al final, hemos definido la función principal en la que hemos llamado la función personalizada "convertToenum" y pasamos los valores de enum a esta función personalizada.

#incluir
#incluir
usando el espacio de nombres STD;
animales enum oso, gato, perro, cabra, mouse;
estatic const char *enum_string [] =
"Oso", "gato", "perro", "cabra", "mouse";
String ConvertToenum (int val)

cadena mystr (enum_string [val]);
devolver mystr;

int main ()
cout<cout<cout<cout<cout<regresar 0;

La matriz de cadenas generada a partir del tipo enum es el resultado de la ejecución del código anterior que se muestra en la siguiente imagen.

Conclusión

Hemos explorado muchos enfoques para convertir un enum en una cadena. El primer método que es el método Stringify () también puede manejar enumeraciones grandes, mientras que los otros métodos pueden usarse para conversiones fáciles. Estos son enfoques bastante simples, y con solo un intento, se sentirá cómodo con ellos.