質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

452閲覧

C++でintをcharに変換する方法について

aankou

総合スコア13

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2019/05/13 12:02

C++初心者です。
人のコードを読んでいて、以下のようなintをcharに変換しているであろうコードを見つけたのですが、3行目がいまいち理解できないです。

C++

1int num = 0; 2num = ... // 0 ~ 9のいずれかが代入される 3char a = char(num + '0'); // ここに関する質問です
  • これはコンストラクタですか?
  • '0'は何を意味しているのですか? 0がない場合、aにはどのような値が代入されるのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ご参考までに別解

C++

1#include <iostream> 2#include <string> 3 4int main(void){ 5 for ( int num : { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } ) { 6 char a = std::to_string(num).back(); // 数値を文字列化して末尾の1文字を取り出す。 7 std::cout << a << ' '; 8 } 9}

投稿2019/05/13 12:33

episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

これはコンストラクタですか?

直接は関係ありません。

0'は何を意味しているのですか?

文字としての '0'です。 num + '0' で、num (ただし、0 ≦ num ≦ 9) を 文字(文字コード)に変換してます。 さらに、'char()' で、文字(char)にしてます。 従って、a には、文字としての '0' から、'9'までが入ります。
'0' が無ければ、文字としての 0x0 ~ 0x9 となります。(表示できない文字)

投稿2019/05/13 12:10

pepperleaf

総合スコア6383

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aankou

2019/05/13 12:32

ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問