C ++ maneiras de converter enum para string

C ++ maneiras de converter enum para string
Um tipo de dados que pode receber uma lista de valores é conhecido como tipo enumerado (enum). O usuário especifica os valores para ele quando um tipo enumerado é declarado. O compilador lança um erro quando atribuímos um valor de flutuação a um valor de um caractere. Da mesma forma, tentar alocar qualquer outro valor aos tipos de dados especificados resulta em um erro do compilador. Os valores do tipo enumerador às vezes são conhecidos como enumeradores. Também é alocado um valor de zero, assim como a matriz.

Enum é um tipo de dados que pode ser especificado pelo usuário que contém constantes integrais. Para defini -lo, utilizamos o modificador 'Enum'. Neste artigo, veremos como transferir determinados valores do tipo enum para uma string em c++. A conversão de uma enumeração em uma string pode ser alcançada de várias maneiras. Vamos passar por alguns dos métodos mais eficientes e simples para converter uma enumeração em uma string. Este método representa uma coleção de números inteiros de uma maneira menos propensa a erros e mais legíveis.

Exemplo 1: Uso do método stringify () para converter enum para string em c ++:

O método de macro stringify () é usado para converter uma enumeração em uma string. Dereferência variável e substituições de macro não são necessárias com este método. O importante é que apenas o texto incluído entre parênteses pode ser convertido usando o método stringify ().

Vamos demonstrar a implementação do código. Na primeira etapa, importamos dois arquivos padrão na seção de cabeçalho. O primeiro é o arquivo iostream e o segundo é o arquivo definido stringify que passa um argumento nele. Este arquivo converte argumentos macro em literais de string sem estender o nome do parâmetro. O arquivo de namespace std também está incluído para a utilização de suas funções.

Em seguida, definimos uma classe enum como um "universo" e contém quatro valores diferentes do tipo enum. Aqui, temos o primeiro valor de enumeração na posição 0, o segundo valor da enumeração na posição 1, e assim por diante, por padrão. Agora, temos uma classe de tipo de dados de caracteres como "convert_enum []", onde chamamos o Método Stringify. O método stringify pega valores do tipo enum e os converte em uma string.

Criamos uma função como "DisplayItems", que imprimirá os valores armazenados na classe Enum. No final, invocamos a principal função que está chamando a função de "DisplayItems" e assumindo a classe Enum "Universo" como um argumento. O valor do tipo enum será convertido em uma string usando este método.

#incluir
#Define stringify (nome) #name
usando namespace std;
Universo Enum

Terra = 0,
Água,
Ar,
Fogo
;
const char* convert_enum [] =

Stringify (Terra),
stringify (água),
stringify (ar),
stringify (fogo)
;
Void DisplayItems (Item Universo)

cout<
int main ()

cout<< "Enum items are: "<displayItems ((universo) 0);
displayItems ((universo) 1);
displayItems ((universo) 2);
displayItems ((universo) 3);
retornar 0;

Os itens que contêm a classe Enum são mostrados na imagem a seguir e são convertidos na string:

Exemplo2: Uso da matriz constante char* para converter enum em string em c ++:

Usando o const char* a matriz é um dos métodos mais básicos para converter uma enumeração. Para acessar os elementos da matriz de string, utilizaremos os valores padrão de enum neste método.

Inicialmente, temos arquivos de cabeçalho padrão na seção de cabeçalho do programa a seguir. Temos um arquivo de namespace std também para acessar sua função. Em seguida, definimos uma classe Enum usando a palavra -chave Enum junto com o nome da classe. O nome da classe é representado como "tipos de dados". O enum da classe “Tipos de dados” contém os quatro elementos.

Depois disso, temos uma matriz de ponteiro const Char como "enumstr" que contém os valores da string de um tipo de enumeração. Assim, “Enumstr []” é uma matriz de string que não pode ser modificada. Em seguida, temos a função principal e, na função principal, temos um comando cout que leva os valores da matriz de string “Enumstr” e imprimiremos na tela Prompt.

#incluir
#incluir
usando namespace std;
enum datatypes integer, string, char, float;
estático const char *enumstr [] =
"Inteiro", "String", "Char", "Float";
int main ()
cout<cout<cout<cout<retornar 0;

O resultado que obtemos usando a matriz de const Char Pointer no programa acima é mostrado abaixo:

Exemplo 3: Usando a função definida para converter enum para string em c ++:

Também podemos implementar nossa função que aceita um número inteiro da classe Enum como um argumento e retorna uma string como uma saída.

O programa incluiu a biblioteca C ++ necessária no cabeçalho junto com o arquivo de namespace std. Depois disso, criamos uma enumeração com o modificador "enum". A enumeração é definida com o nome "animal". O "animal" armazena cinco valores aleatórios de um tipo de enumeração. Temos uma matriz de ponteiro const Char como "string enum" na próxima linha de código. Ele contém uma variedade de valores de string.

Em seguida, definimos uma função personalizada como "Converttoenum". Esta função está tomando números inteiros como um argumento como "val". A variável da string é preenchida dentro da função com um item const char* da matriz de string enum. No final, definimos a principal função na qual chamamos de função personalizada de "converttoenum" e passamos os valores da enumeração para essa função personalizada.

#incluir
#incluir
usando namespace std;
enum animais urso, gato, cachorro, cabra, mouse;
estático const char *enum_string [] =
"Urso", "gato", "cachorro", "cabra", "mouse";
String converttoenum (int val)

string mystr (enum_string [val]);
retornar mystr;

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

A matriz de string gerada a partir do tipo enum é o resultado da execução do código acima mostrada na imagem a seguir.

Conclusão

Exploramos muitas abordagens para converter uma enumeração em uma string. O primeiro método que é o método stringify () também pode lidar com enumes grandes, enquanto os outros métodos podem ser usados ​​para conversões fáceis. Essas são abordagens bastante simples e, com apenas uma tentativa, você se sentirá confortável com eles.