たとえば、10 未満の int を char に変換するにはどうすればよいですか:
5 -> '5'
(ASCII テーブルを使用せずに int を char に変換します)
質問する
2541 次
4 に答える
13
標準文字セットでは数字は常に連続しているため、次のように記述できます。
int number = 5;
int character = number + '0';
/* Here, character == '5' */
たとえば、C11 標準を参照してください。
n1570、§ 5.2.1 文字セット
十進数の 10桁:
0 1 2 3 4 5 6 7 8 9
[...]
ソースおよび実行の基本文字セットの両方で、上記の 10 進数のリストの 0 の後の各文字の値は、前の値よりも 1 大きくなります。
同じことが C++ にも当てはまります。
n3337、§ 2.3 文字セット
ソースおよび実行の基本文字セットの両方で、上記の 10 進数のリストの 0 の後の各文字の値は、前の値よりも 1 大きくなります。
于 2013-06-26T13:01:59.997 に答える
3
番号が 0 ~ 9 の場合は、次のように使用するとよいでしょう。
int i = 5;
char ch = i + '0';
しかし、おそらく最良のオプションは itoa() を使用することです
int i = 124;
char buffer[33];
itoa(i, buffer, 10); //10 mean decimal.
于 2013-06-26T13:26:25.577 に答える
1
「ASCII テーブルを使用しない」という意味がよくわかりませんが、
int i = 5;
char c = i + '0';
あなたが望むことをします。'0'
throughの文字コードは'9'
、連続していて正しい順序であることが保証されています。
于 2013-06-26T13:02:45.183 に答える
1
ここにオプションがあります
char c;
int x;
//...
switch ( x )
{
case 1:
c = '1';
break;
//and so on
}
そしてもう一つ:
std::map<int, char> mapping;
mapping[1] = '1';
//...
char c = mapping[4];
于 2013-06-26T13:02:09.297 に答える