web-dev-qa-db-ja.com

10進数ASCII Code?

たとえば、「a」にはASCIIコード97があり、

char ch = 'a';

または

char ch = 97;

autoで書くことができます

auto ch = 'a';

最初のケースですが、演during中に数値ASCIIコードによってchar変数を取得する方法は?

これは私にはうまくいきません:

auto ch = '\97';
29
Denis Sablukov

エスケープシーケンスには8進数または16進数の値を使用する必要があります

auto ch  = '\141';
auto ch2 = '\x61';

詳細情報 https://en.cppreference.com/w/cpp/language/escape

10進数値を使用する場合、2つのオプションがあります。

  1. Charにキャスト

    auto ch = static_cast<char>(97);
    
  2. ユーザー定義のリテラル

    char operator "" _ch(unsigned long num)
    {
         return static_cast<char>(num);
    }
    //...
    auto ch = 97_ch;
    
37

10進数のエスケープはありませんが、16進数を使用できます:'\x61'、または8進数、'\141'
10進数が本当に必要な場合は、キャストする必要があります。 char{97}

20
molbdnilo

charを指定する整数リテラルはありません。タイプを明示的に指定する必要があります。

auto ch = char{97};
8
lubgr

整数リテラルcharにキャストします。

auto ch = static_cast<char>(97);
4
Ron