C ++ sposoby konwersji enum na ciąg

C ++ sposoby konwersji enum na ciąg
Typ danych, który można przypisać listę wartości, jest znana jako typ wyliczony (enum). Użytkownik określa wartości, gdy zadeklarowany jest wyliczony typ. Kompilator rzuca błąd, gdy przypisujemy wartość zmiennoprzecinkową do wartości znaku. Podobnie próba przydzielenia dowolnej innej wartości do określonych typów danych powoduje błąd z kompilatora. Wartości typu wyliczającego są czasami znane jako wyliczające. Jest też przydzielany wartość zero, podobnie jak tablica.

Enum to typ danych, który może być określony przez użytkownika, który zawiera stałe integralne. Aby to zdefiniować, używamy modyfikatora „wyliczania”. W tym artykule przyjrzymy się, jak przenieść określone wartości typu enum do ciągu w C++. Przekształcenie wyliczenia na ciąg można osiągnąć na różne sposoby. Przejdziemy przez niektóre z najbardziej wydajnych i prostych metod przekształcenia wyliczenia na ciąg. Ta metoda reprezentuje zbiór liczb całkowitych w mniej podatny na błędy i bardziej czytelny sposób.

Przykład 1: Użyj metody stringify () do konwersji enum na ciąg w C ++:

Metoda makro Stringify () jest używana do konwersji wyliczenia na ciąg. Zmienne dereferencje i wymiany makro nie są konieczne z tą metodą. Ważne jest to, że tylko tekst zawarty w nawiasie można przekonwertować za pomocą metody Stringify ().

Wykazaćmy implementację kodu. W pierwszym kroku zaimportowaliśmy dwa standardowe pliki w sekcji nagłówka. Pierwszy to plik iostream, a drugi to plik Stringify, który przekazuje w nim argument. Ten plik konwertuje argumenty makro w literały ciągle bez rozszerzenia nazwy parametrów. Plik STD przestrzeni nazw jest również uwzględniony w celu wykorzystania jego funkcji.

Następnie zdefiniowaliśmy klasę enum jako „wszechświata” i zawiera ona cztery różne wartości typu enum. Tutaj mamy pierwszą wartość enum w pozycji 0, druga wartość enum w pozycji 1 i tak dalej, domyślnie. Teraz mamy klasę typu danych postaci jako „konwertu_enum []”, w której nazywaliśmy metodę stringify. Metoda stringify przyjmuje wartości typu enum i przekształca je w ciąg.

Stworzyliśmy funkcję jako „wyświetlacze”, która wydrukuje wartości przechowywane w klasie enum. Ostatecznie powołaliśmy się do głównej funkcji, która nazywa funkcję „wyświetlacz” i przyjmując klasę enum „wszechświatem” jako argument. Wartość typu enum zostanie przekonwertowana na ciąg za pomocą tej metody.

#włączać
#Define Stringif (Nazwa) #name
za pomocą przestrzeni nazw Std;
Enum Universe

Ziemia = 0,
Woda,
Powietrze,
Ogień
;
const char* convert_enum [] =

stringify (Ziemia),
stringify (woda),
stringify (powietrze),
Stringif (ogień)
;
void DisplayItems (pozycja wszechświata)

Cout<
int main ()

Cout<< "Enum items are: "<DisplayItems ((wszechświat) 0);
DisplayItems ((wszechświat) 1);
DisplayItems ((wszechświat) 2);
DisplayItems ((wszechświat) 3);
powrót 0;

Elementy zawierające klasę enum są pokazane na poniższym obrazku i są konwertowane na ciąg:

Przykład 2: Użycie stałej tablicy char* do konwersji enum na ciąg w C ++:

Korzystanie z tablicy const char* jest jedną z najbardziej podstawowych metod konwersji enum. Aby uzyskać dostęp do elementów tablicy ciągu, w tej metodzie wykorzystamy domyślne wartości enum.

Początkowo mamy standardowe pliki nagłówka w sekcji nagłówka następującego programu. Mamy również plik STD w przestrzeni nazw, aby uzyskać dostęp do jego funkcji. Następnie zdefiniowaliśmy klasę enum, używając słowa kluczowego enum wraz z nazwą klasy. Nazwa klasy jest reprezentowana jako „danych danych”. Klasa enum „Datatypy” zawiera cztery elementy.

Następnie mamy tablicę wskaźnika const char wskaźnik jako „enumstr”, który zawiera wartości ciągów z typu enum. Zatem „enumstr []” to tablica ciągu, której nie można zmodyfikować. Następnie mamy główną funkcję, a w funkcji głównej mamy polecenie Cout, które przyjmuje wartości tablicy ciągów „Enumstr” i będzie drukował na ekranie podpowiedzi.

#włączać
#włączać
za pomocą przestrzeni nazw Std;
Enum DataTypes Integer, String, char, float;
Static const char *enumstr [] =
„Integer”, „String”, „char”, „float”;
int main ()
Cout<Cout<Cout<Cout<powrót 0;

Wynik, jaki osiągnęliśmy, używając tablicy Const Char Wskaźnik w powyższym programie, pokazano poniżej:

Przykład 3: Za pomocą zdefiniowanej funkcji do konwersji enum na ciąg w C ++:

Możemy również zaimplementować naszą funkcję, która akceptuje liczbę całkowitą klasy enum jako argument i zwraca ciąg jako wyjście.

Program obejmował wymaganą bibliotekę C ++ w nagłówku wraz z plikami przestrzeni nazw STD. Następnie stworzyliśmy enum z modyfikatorem „enum”. Enum jest zdefiniowane nazwą „zwierzę”. „Zwierzę” przechowuje pięć losowych wartości typu enum. Mamy tablicę Const Char Wskaźnik jako „Ciąg enum” w następnym wierszu kodu. Zawiera tablicę wartości ciągów.

Następnie zdefiniowaliśmy funkcję niestandardową jako „Converttoenum”. Ta funkcja przyjmuje liczby całkowite Enum jako argument jako „val”. Zmienna łańcuchowa jest wypełniona w funkcji z elementem const char* z tablicy łańcucha enum. Ostatecznie zdefiniowaliśmy główną funkcję, w której nazwaliśmy funkcję niestandardową „ConvertToeNum” i przekazaliśmy wartości enum do tej funkcji niestandardowej.

#włączać
#włączać
za pomocą przestrzeni nazw Std;
Enum Animals niedźwiedź, kot, pies, koza, mysz;
Static const char *enum_string [] =
„Bear”, „Cat”, „Dog”, „Goat”, „Mysz”;
String Converttoenum (int val)

String MySTR (enum_string [val]);
powrót MYSTR;

int main ()
Cout<Cout<Cout<Cout<Cout<powrót 0;

Tablica ciągu generowana z typu enum jest wynikiem wykonywania powyższego kodu pokazanego na następującym obrazie.

Wniosek

Zbadaliśmy wiele podejść do przekształcenia wyliczenia na ciąg. Pierwsza metoda, jaka jest metodą Stringify (), może również obsługiwać duże wyliczenia, podczas gdy inne metody mogą być stosowane do łatwych konwersji. Są to dość proste podejścia, a przy jednej próbie będziesz z nimi komfort.