Charを [〜#〜] ascii [〜#〜] int値に変換したいと思います。
配列にすべての可能な値を入力してそれと比較することはできますが、それは私には正しくないようです。のようなものが欲しい
_char mychar = "k"
public int ASCItranslate(char c)
return c
ASCItranslate(k) // >> Should return 107 as that is the ASCII value of 'k'.
_
ポイントはatoi()
は読み取り可能な数値のみのため、ここでは機能しません。
スペース(ASCII 32)では何もしません。
これを行うだけです:
int(k)
ここではcharをintに直接変換しているだけなので、関数を呼び出す必要はありません。
char
はすでに数値です。 ASCIIは数値から文字表現への単なるマッピングなので、変換は必要ありません。
必要に応じて、数値として直接使用することも、キャストすることもできます。
C++では、static_cast<int>(k)
を使用して変換を明示的にすることもできます。
ASCII文字からASCII値に変換するには:
char c='A';
cout<<int(c);
ASCII値からASCII文字に変換するには:
int a=67;
cout<<char(a);
#include <iostream>
char mychar = 'k';
int ASCIItranslate(char ch) {
return ch;
}
int main() {
std::cout << ASCIItranslage(mychar);
return 0;
}
これは、さまざまな構文エラーが修正された元のコードです。 ASCII(最近ではほとんどすべてのことです)を使用するコンパイラを使用していると仮定すると、それは機能します。なぜそれが間違っていると思いますか?