C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++列挙型を文字列にマップする方法は?


ここでは、いくつかの列挙型データをC++の文字列にマップする方法を説明します。そうするためのそのような直接的な機能はありません。ただし、列挙型を文字列に変換する独自の関数を作成できます。

引数として列挙型の値をとる関数を作成し、その関数から列挙型の名前を文字列として手動で返します。

サンプルコード

#include <iostream>
using namespace std;

enum Animal {Tiger, Elephant, Bat, Dog, Cat, Mouse};

string enum_to_string(Animal type) {
   switch(type) {
      case Tiger:
         return "Tiger";
      case Elephant:
         return "Elephant";
      case Bat:
         return "Bat";
      case Dog:
         return "Dog";
      case Cat:
         return "Cat";
      case Mouse:
         return "Mouse";
      default:
         return "Invalid animal";
   }
}

int main() {
   cout << "The Animal is : " << enum_to_string(Dog) << " Its number: " << Dog <<endl;
   cout << "The Animal is : " << enum_to_string(Mouse) << " Its number: " << Mouse << endl;
   cout << "The Animal is : " << enum_to_string(Elephant) << " Its number: " << Elephant;
}

出力

The Animal is : Dog Its number: 3
The Animal is : Mouse Its number: 5
The Animal is : Elephant Its number: 1

  1. C ++の関数から配列を返す方法は?

    C ++は配列全体を返すわけではありませんが、配列へのポインタを返すことはできます。関数外では、ローカル変数のアドレスを返すことはできません。ローカル変数を静的にすることで、ローカル変数のアドレスを返すことができます。 ポインタを返す構文は次のとおりです。 int * function_name() { body } ここで function_name −ユーザーが指定した関数の名前。 以下は、関数から配列を返す例です。 例 #include <iostream> using namespace std; int * ret() {    stati

  2. C ++で列挙型を使用する方法は?

    列挙型は、C /C++言語でのユーザー定義のデータ型です。これは、積分定数に名前を割り当てるために使用され、プログラムの読み取りと保守を容易にします。キーワード「enum」は、列挙を宣言するために使用されます。 以下は列挙型の構文です。 enum enum_name{const1, const2, ....... }; ここで enum_name −ユーザーが付けた名前。 const1、const2 −これらはタイプフラグの値です。 enumキーワードは、enumタイプの変数を定義するためにも使用されます。列挙型の変数を次のように定義する2つの方法があります- enum co