C ++ Möglichkeiten, um Enum in String umzuwandeln

C ++ Möglichkeiten, um Enum in String umzuwandeln
Ein Datentyp, dem eine Liste von Werten zugewiesen wird, wird als aufzähliger Typ (Enum) bezeichnet. Der Benutzer gibt die Werte dafür an, wenn ein aufgezählter Typ deklariert wird. Der Compiler macht einen Fehler, wenn wir einem Zeichenwert einen Float -Wert zuweisen. In ähnlicher Weise führt der Versuch, einen anderen Wert für die angegebenen Datentypen zuzuweisen. Werte des Enumeratortyps werden manchmal als Aufzähler bezeichnet. Auch es wird wie das Array einen Wert von Null zugewiesen, genau wie das Array.

Enum ist ein Datentyp, der vom Benutzer angegeben werden kann, der integrale Konstanten enthält. Um es zu definieren, verwenden wir den Modifikator "Enum". In diesem Artikel werden wir untersuchen++. Das Umwandeln einer Enum in eine Zeichenfolge kann auf verschiedene Weise erreicht werden. Wir werden einige der effizientesten und einfachsten Methoden zum Konvertieren einer Enum in eine Zeichenfolge durchlaufen. Diese Methode stellt eine Sammlung von Ganzzahlzahlen auf weniger fehleranfällige und lesbarere Weise dar.

Beispiel 1: Verwendung der Stringify () -Methode zum Konvertieren von Enum in C ++: Die Veränderung in die Zeichenfolge konvertieren:

Die Stringify () -Makro -Methode wird verwendet, um einen Enum in eine Zeichenfolge umzuwandeln. Mit dieser Methode sind keine Variablen -Derferenz- und Makroersatze erforderlich. Wichtig ist, dass nur der in Klammern enthaltene Text mit der Stringify () -Methode konvertiert werden kann.

Lassen Sie uns die Code -Implementierung demonstrieren. Im ersten Schritt haben wir zwei Standarddateien im Abschnitt über den Header importiert. Die erste ist die iOstream -Datei und die zweite ist die Define Stringify -Datei, die ein Argument darin übergibt. Diese Datei wandelt Makroargumente in Zeichenfolge Literale um, ohne den Parameternamen zu erweitern. Die Namespace STD -Datei ist auch zur Verwendung ihrer Funktionen enthalten.

Dann haben wir eine Enum -Klasse als „Universum“ definiert und sie enthält vier verschiedene Werte des Typs Enum. Hier haben wir den ersten Umlaufwert an Position 0, den zweiten Umlaufwert an Position 1 usw. standardmäßig. Jetzt haben wir eine Charakterdatentypklasse als "convert_enum []", in der wir die Stringify -Methode bezeichnet haben. Die Stringify -Methode nimmt Werte des Enumentyps auf und wandelt sie in eine Zeichenfolge um.

Wir haben eine Funktion als „DisplayItems“ erstellt, die die in der Enum -Klasse gespeicherten Werte druckt. Am Ende haben wir die Hauptfunktion aufgerufen, bei der die Funktion „DisplayItems“ aufgerufen wird und die Enum -Klasse „Universum“ als Argument nimmt. Der Wert des Enum -Typs wird mit dieser Methode in eine Zeichenfolge konvertiert.

#enthalten
#define stringify (name) #name
Verwenden von Namespace STD;
Enum -Universum

Erde = 0,
Wasser,
Luft,
Feuer
;
const char* convert_enum [] =

Stringify (Erde),
Stringify (Wasser),
Stringify (Luft),
Stringify (Feuer)
;
void displayItems (Universumselement)

Cout<
int main ()

Cout<< "Enum items are: "<displayItems ((Universum) 0);
displayItems ((Universum) 1);
displayItems ((Universum) 2);
displayItems ((Universum) 3);
Rückkehr 0;

Die Elemente, die die Enum -Klasse enthalten, werden im folgenden Bild angezeigt und in die Zeichenfolge konvertiert:

Beispiel2: Verwendung von konstantem char* -Array zum Konvertieren von Enum in C ++:

Die Verwendung von const char* Array ist eine der grundlegendsten Methoden zum Konvertieren eines Enum. Um auf die Elemente des String -Arrays zuzugreifen, verwenden wir die Standardwerte von Enum in dieser Methode.

Zunächst haben wir Standard -Header -Dateien im Abschnitt Header des folgenden Programms. Wir haben auch eine Namespace STD -Datei, um auf die Funktion zuzugreifen. Dann haben wir eine Enum -Klasse definiert, indem wir das Schlüsselwort Enum zusammen mit dem Klassennamen verwenden. Der Klassenname wird als "Datatypen" dargestellt. Die Enum -Klasse „Datatypes“ enthält die vier Elemente.

Danach haben wir ein const char -Zeiger -Array als „Enumstr“, das die Zeichenfolgenwerte von einem Enum -Typ enthält. Somit ist „Enumstr []“ ein String -Array, das nicht geändert werden kann. Anschließend haben wir die Hauptfunktion und in der Hauptfunktion haben wir einen COUT.

#enthalten
#enthalten
Verwenden von Namespace STD;
Enum DataTypes Integer, String, char, float;
static const char *enumstr [] =
"Integer", "String", "char", "float";
int main ()
Cout<Cout<Cout<Cout<Rückkehr 0;

Das Ergebnis, das wir mit dem const char Pointer -Array im obigen Programm erhalten haben, ist unten gezeigt:

Beispiel 3: Verwenden der definierten Funktion zum Konvertieren von Enum in c ++ in die Zeichenfolge:

Wir können auch unsere Funktion implementieren, die eine Ganzzahl der Enum -Klasse als Argument akzeptiert und eine Zeichenfolge als Ausgabe zurückgibt.

Das Programm hat die erforderliche C ++ - Bibliothek zusammen mit der STD -Namespace -Datei in den Header aufgenommen. Danach haben wir eine Aufzählung mit dem "Enum" -Modifikator erstellt. Die Aufzählung ist mit dem Namen "Tier" definiert. Das „Tier“ speichert fünf zufällige Werte eines Enum -Typs. In der nächsten Codezeile haben wir ein const char Pointer -Array als "Enum String". Es enthält ein Array von Stringwerten.

Dann haben wir eine benutzerdefinierte Funktion als "convertoenum" definiert. Diese Funktion nimmt Aufzündungen als Argument als „Val“ ein. Die String -Variable ist in der Funktion mit einem const char* -Position aus dem Enum -String -Array besiedelt. Am Ende haben wir die Hauptfunktion definiert, in der wir die benutzerdefinierte Funktion als "convertoenum" bezeichnet haben und die Enum -Werte an diese benutzerdefinierte Funktion übergeben haben.

#enthalten
#enthalten
Verwenden von Namespace STD;
Enum -Tiere Bär, Katze, Hund, Ziege, Maus;
static const char *enum_string [] =
"Bär", "Katze", "Hund", "Ziege", "Maus";
String convertoenum (int val)

String mystr (enum_string [val]);
Mystr zurück;

int main ()
Cout<Cout<Cout<Cout<Cout<Rückkehr 0;

Das aus dem Enumentyp generierte Zeichenfolgenarray ist das Ergebnis der oben angegebenen Codeausführung im folgenden Bild.

Abschluss

Wir haben viele Ansätze zum Umwandeln einer Enum in eine Zeichenfolge untersucht. Die erste Methode, die die Stringify () -Methode ist. Dies sind recht einfache Ansätze, und mit nur einem Versuch werden Sie sich mit ihnen wohl fühlen.