C ++ måter å konvertere enum til streng

C ++ måter å konvertere enum til streng
En datatype som kan tildeles en liste over verdier er kjent som en oppregnet type (enum). Brukeren spesifiserer verdiene for det når en oppregnet type er erklært. Kompilatoren kaster en feil når vi tildeler en floatverdi til en karakterverdi. Tilsvarende resulterer det å prøve å tildele all annen verdi til de spesifiserte datatypene i en feil fra kompilatoren. Verdier av tellertypen er noen ganger kjent som tellere. Det er også tildelt en verdi på null, akkurat som matrisen.

Enum er en datatype som kan spesifiseres av brukeren som inneholder integrerte konstanter. For å definere det, bruker vi modifisereren 'Enum'. I denne artikkelen vil vi se på hvordan du kan overføre visse verdier av enumtype til en streng i C++. Å konvertere en enum til en streng kan oppnås på forskjellige måter. Vi vil gå gjennom noen av de mest effektive og enkle metodene for å konvertere en enum til en streng. Denne metoden representerer en samling av heltallstall på en mindre feilutsatt og mer lesbar måte.

Eksempel 1: Bruk av Stringify () -metode for å konvertere enum til streng i C ++:

Stringify () makrometoden brukes til å konvertere en enum til en streng. Variabel derferencing og makroutskiftninger er ikke nødvendig med denne metoden. Det viktige er at bare teksten som er inkludert i parentes kan konverteres ved hjelp av Stringify () -metoden.

La oss demonstrere kodeimplementeringen. I det første trinnet har vi importert to standardfiler i overskriftsdelen. Den første er iostream -filen, og den andre er den definer Stringify -filen som gir et argument i den. Denne filen konverterer makroargumenter til strenglitteraler uten å utvide parameternavnet. Navneområdet STD -fil er også inkludert for bruk av funksjonene.

Deretter har vi definert en enum -klasse som et "univers", og den inneholder fire forskjellige verdier av typen Enum. Her har vi den første enumverdien i posisjon 0, den andre enumverdien i posisjon 1, og så videre, som standard. Nå har vi en karakterdatatypeklasse som "Convert_enum []" der vi kalte Stringify -metoden. Stringify -metoden tar verdier av enum -type og konverterer dem til en streng.

Vi har laget en funksjon som "DisplayItems" som vil skrive ut verdiene som er lagret i Enum -klassen. Til slutt har vi påkalt hovedfunksjonen som kaller funksjonen “DisplayItems” og tar Enum -klassen “Universe” som et argument. Enum -typen verdi vil bli konvertert til en streng ved hjelp av denne metoden.

#inkludere
#Define Stringify (navn) #navn
ved hjelp av navneområdet STD;
Enum Universe

Jord = 0,
Vann,
Luft,
Brann
;
const char* convert_enum [] =

Stringify (jord),
Stringify (vann),
Stringify (luft),
Stringify (brann)
;
void displayItems (universelement)

cout<
int main ()

cout<< "Enum items are: "<DisplayItems ((univers) 0);
DisplayItems ((univers) 1);
DisplayItems ((univers) 2);
DisplayItems ((univers) 3);
retur 0;

Elementene som inneholder enum -klassen vises i følgende bilde og konverteres til strengen:

Eksempel2: Bruk av konstant char* -array for å konvertere enum til streng i C ++:

Å bruke const char* matrise er en av de mest grunnleggende metodene for å konvertere en enum. For å få tilgang til elementene i strengmatrisen, vil vi bruke standardverdiene til enum i denne metoden.

Til å begynne med har vi standard overskriftsfiler i overskriftsdelen av følgende program. Vi har et navneområde STD -fil også for å få tilgang til funksjonen. Deretter har vi definert en enum -klasse ved å bruke enum -nøkkelordet sammen med klassenavnet. Klassenavnet er representert som "Datatyper". Enum -klassen “Datatypes” inneholder de fire elementene.

Etter det har vi en const char peker -matrise som "enumstr" som inneholder strengverdiene fra en enum -type. Dermed er "enumstr []" en strengmatrise som ikke kan endres. Deretter har vi hovedfunksjonen, og i hovedfunksjonen har vi en COUT -kommando som tar verdiene til streng -array “Enumstr” og vil skrive ut på hurtigskjermen.

#inkludere
#inkludere
ved hjelp av navneområdet STD;
enum datatyper heltall, streng, røye, float;
statisk const char *enumstr [] =
"Heltall", "String", "Char", "float";
int main ()
cout<cout<cout<cout<retur 0;

Utfallet vi fikk ved å bruke Const Char Pointer -matrisen i programmet ovenfor er vist nedenfor:

Eksempel 3: Bruke den definerte funksjonen for å konvertere enum til streng i C ++:

Vi kan også implementere vår funksjon som aksepterer et heltall av enumklasse som et argument og returnerer en streng som en utgang.

Programmet har inkludert den nødvendige C ++ -biblioteket i overskriften sammen med STD -navnefilen. Etter dette har vi laget en enum med "enum" -modifisereren. Enum er definert med navnet “Animal”. "Animal" lagrer fem tilfeldige verdier av en enum -type. Vi har en Const Char Pointer -matrise som "Enum String" i neste kodeinje. Den inneholder en rekke strengverdier.

Deretter har vi definert en tilpasset funksjon som "ConvertToenum". Denne funksjonen tar enum heltall som et argument som "val". Strengvariabelen er befolket inne i funksjonen med et const char* element fra enum streng -array. Til slutt har vi definert hovedfunksjonen der vi har kalt den tilpassede funksjonen "ConvertToNum" og gitt enumverdiene til denne tilpassede funksjonen.

#inkludere
#inkludere
ved hjelp av navneområdet STD;
enum dyr bjørn, katt, hund, geit, mus;
statisk const char *enum_string [] =
"Bear", "Cat", "Dog", "Geit", "Mouse";
Strengkonvertering (int val)

String mystr (enum_string [val]);
Returner Mystr;

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

Strengoppstillingen generert fra Enum -typen er resultatet av kodeutførelsen ovenfor vist i følgende bilde.

Konklusjon

Vi har utforsket mange tilnærminger for å konvertere en enum til en streng. Den første metoden som er Stringify () -metoden, kan også håndtere store enums, mens de andre metodene kan brukes til enkle konverteringer. Dette er ganske enkle tilnærminger, og med bare ett forsøk vil du være komfortabel med dem.