【C++】std::to_stringで数値を文字列に変換する方法

目次

はじめに

C++で、計算結果の数値と、説明の文字列を連結して一つのメッセージを作成したい、という場面は頻繁にあります。C++では、std::stringオブジェクトと数値を + で直接連結することはできません。

この問題を解決するために、C++11では <string> ヘッダーに std::to_string という便利な関数が導入されました。この関数は、intdoubleといった様々な数値型の値を、簡単にstd::stringオブジェクトに変換してくれます。


【前提】C++11とは?

C++11は、2011年に正式化されたC++言語のメジャーアップデート版です。std::to_string はこのC++11で導入されたため、利用するにはC++11以降に対応したコンパイラが必要です。


to_string を使ったサンプルコード

このコードは、整数と浮動小数点数をそれぞれ to_string を使って文字列に変換し、他の文字列と連結して表示します。

完成コード

#include <iostream>
#include <string> // to_string を使うために必要

using namespace std;

int main() {
    // 1. 整数を文字列に変換
    int score = 95;
    string score_str = to_string(score);
    string message1 = "あなたの点数は " + score_str + " 点です。";
    
    cout << message1 << endl;
    
    // 2. 浮動小数点数を文字列に変換
    double pi = 3.14159;
    string pi_str = to_string(pi);
    string message2 = "円周率の値は " + pi_str + " です。";

    cout << message2 << endl;
    
    return 0;
}

実行結果

あなたの点数は 95 点です。
円周率の値は 3.141590 です。

コードの解説

std::to_string(数値)

  • 機能: 引数として渡された数値(int, long, double, floatなど)を、std::stringオブジェクトに変換して返します。
  • ヘッダー: <string> をインクルードする必要があります。
  • 浮動小数点数の精度: double型などを変換した場合、小数点以下6桁程度で表現されます。より詳細な書式(桁数など)を指定したい場合は、std::ostringstreamstd::format (C++20) を使う必要があります。

まとめ

今回は、C++11の std::to_string を使って、数値を簡単に文字列に変換する方法を解説しました。

  • <string> ヘッダーをインクルードする。
  • to_string(数値) の形で呼び出す。

複雑な書式指定が不要な、基本的な数値から文字列への変換では、to_string を使うのが最も手軽で分かりやすい方法です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次