Modi C ++ per convertire ENUM in stringa

Modi C ++ per convertire ENUM in stringa
Un tipo di dati che può essere assegnato un elenco di valori è noto come tipo elencato (ENUM). L'utente specifica i valori per esso quando viene dichiarato un tipo elencato. Il compilatore lancia un errore quando assegniamo un valore float a un valore del carattere. Allo stesso modo, il tentativo di allocare qualsiasi altro valore ai tipi di dati specificati si traduce in un errore dal compilatore. I valori del tipo di enumeratore sono talvolta noti come enumeratori. Anche questo viene assegnato un valore zero, proprio come l'array.

Enum è un tipo di dati che può essere specificato dall'utente che contiene costanti integrali. Per definirlo, utilizziamo il modificatore "enum". In questo articolo, esamineremo come trasferire determinati valori di tipo Enum in una stringa in C++. La conversione di un enum in una stringa può essere ottenuta in vari modi. Passeremo attraverso alcuni dei metodi più efficienti e semplici per convertire un enum in una stringa. Questo metodo rappresenta una raccolta di numeri interi in modo meno soggetto a errori e più leggibili.

Esempio 1: utilizzo del metodo Stringify () per convertire ENUM in String in C ++:

Il metodo macro Stringify () viene utilizzato per convertire un enum in una stringa. Dereferencing variabile e sostituzioni delle macro non sono necessarie con questo metodo. L'importante è che, solo il testo incluso nella parentesi può essere convertito usando il metodo Stringify ().

Dimostriamo l'implementazione del codice. Nel primo passaggio, abbiamo importato due file standard nella sezione di intestazione. Il primo è il file iostream e il secondo è il file Stringify Define che passa un argomento in esso. Questo file converte gli argomenti macro in stringa letterali senza estendere il nome del parametro. Il file STD dello spazio dei nomi è anche incluso per l'utilizzo delle sue funzioni.

Quindi, abbiamo definito una classe Enum come un "universo" e contiene quattro diversi valori di tipo enum. Qui, abbiamo il primo valore enum in posizione 0, il secondo valore enum in posizione 1 e così via, per impostazione predefinita. Ora, abbiamo una classe di tipo di dati di caratteri come "convert_enum []" in cui abbiamo chiamato il metodo Stringify. Il metodo Stringify prende i valori del tipo enum e li converte in una stringa.

Abbiamo creato una funzione come "DisplayItems" che stampa i valori memorizzati nella classe Enum. Alla fine, abbiamo invocato la funzione principale che chiama la funzione "DisplayItems" e prendendo la classe Enum "Universe" come argomento. Il valore del tipo enum verrà convertito in una stringa usando questo metodo.

#includere
#define stringify (name) #Name
Utilizzo dello spazio dei nomi std;
Enum Universe

Terra = 0,
Acqua,
Aria,
Fuoco
;
const char* convert_enum [] =

Stringify (Earth),
Stringify (acqua),
Stringify (AIR),
Stringify (Fire)
;
void displayitems (elemento universo)

cout<
int main ()

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

Gli elementi contenenti la classe Enum sono mostrati nella seguente immagine e vengono convertiti nella stringa:

Esempio2: utilizzo di un array di char* costante per convertire enum in stringa in c ++:

L'uso dell'array const char* è uno dei metodi più basilari per convertire un enum. Per accedere agli elementi dell'array di stringa, utilizzeremo i valori predefiniti di Enum in questo metodo.

Inizialmente, abbiamo file di intestazione standard nella sezione di intestazione del seguente programma. Abbiamo anche un file STD dello spazio dei nomi per accedere alla sua funzione. Quindi, abbiamo definito una classe Enum usando la parola chiave Enum insieme al nome della classe. Il nome della classe è rappresentato come "datatipi". La classe Enum "DataTIPES" contiene i quattro elementi.

Successivamente, abbiamo un array di puntatore const char come "enumstr" che contiene i valori della stringa da un tipo enum. Pertanto, "enumstr []" è un array di stringhe che non può essere modificato. Quindi, abbiamo la funzione principale e nella funzione principale, abbiamo un comando cout che prende i valori dell'array di stringa "enumstr" e stamperemo sulla schermata del prompt.

#includere
#includere
Utilizzo dello spazio dei nomi std;
Enum Datatypes integer, string, char, float;
statico const char *enumstr [] =
"Intero", "stringa", "char", "float";
int main ()
cout<cout<cout<cout<restituzione 0;

Il risultato che abbiamo ottenuto utilizzando l'array puntatore const char nel programma sopra è mostrato di seguito:

Esempio 3: usando la funzione definita per convertire ENUM in stringa in C ++:

Possiamo anche implementare la nostra funzione che accetta un numero intero della classe Enum come argomento e restituisce una stringa come output.

Il programma ha incluso la libreria C ++ richiesta nell'intestazione insieme al file dello spazio dei nomi STD. Dopo questo, abbiamo creato un enum con il modificatore "enum". L'enum è definito con il nome "animale". Lo "animale" memorizza cinque valori casuali di un tipo enum. Abbiamo un array di puntatore const char come "stringa enum" nella riga di codice successiva. Contiene una matrice di valori di stringa.

Quindi, abbiamo definito una funzione personalizzata come "convertoenum". Questa funzione sta prendendo i numeri interi Enum come argomento come "val". La variabile stringa è popolata all'interno della funzione con un elemento const char* dall'array di stringa enum. Alla fine, abbiamo definito la funzione principale in cui abbiamo chiamato la funzione personalizzata "convertoenum" e passato i valori Enum a questa funzione personalizzata.

#includere
#includere
Utilizzo dello spazio dei nomi std;
enum animali orso, gatto, cane, capra, topo;
statico const char *enum_string [] =
"Orso", "gatto", "cane", "capra", "mouse";
String convertToenum (int val)

string mystr (enum_string [val]);
restituire Mystr;

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

L'array di stringa generato dal tipo enum è il risultato dell'esecuzione del codice sopra mostrata nella seguente immagine.

Conclusione

Abbiamo esplorato molti approcci per convertire un enum in una stringa. Il primo metodo che è il metodo Stringify () può gestire anche grandi enum, mentre gli altri metodi possono essere utilizzati per conversioni facili. Questi sono approcci abbastanza semplici e, con un solo tentativo, ti sentirai a tuo agio con loro.