【C++】数値型をstring型に変換する複数の方法【int/double to string】


数値 → std::string

intdouble等の数値型の値を文字列型std::stringの値に変換する方法です。

std::to_string(123); // "123"      (int to string)
std::to_string(3.1); // "3.100000" (double to string)
std::to_string(.1f); // "0.100000" (float to string)

#include <string>ヘッダのstd::to_string関数を用いることで、数値の文字列化が実現できます。

目次

スポンサーリンク

変換関数一覧

to_stringはオーバーロード関数であり、double型やlong型など複数の型からの変換が可能です。

// 整数型
std::string to_string(int);
std::string to_string(unsigned int);
std::string to_string(long);
std::string to_string(unsigned long);
std::string to_string(long long);
std::string to_string(unsigned long long);
// 浮動小数点数型
std::string to_string(float);
std::string to_string(double);
std::string to_string(long double);

char型をstring型に変換する方法

char型からの変換についてはto_string関数自体が対応していないため、別ページの「char型をstringに変換する」や、次に紹介する「# stringstream経由で変換」の方法を参考にしてください。

参考までに、C++11であれば以下の方法での変換が可能です。詳しい説明は上記の別ページで行っています。

char ch = 'a';
std::string str{ch}; // "a"

stringstream経由で変換

一般的なstd::to_string関数を用いる方法の他にstringstreamクラスを用いる方法もあります。int型以外にも様々な型に対応できます。

// #include <sstream>

std::stringstream ss;
ss << 3.14;
std::string str = ss.str(); // "3.14"

std::cout等の入出力ストリームと同じ感覚で扱えるため、フォーマット済み文字列の作成にも便利です。

またchar型からの変換にも対応できます。

std::stringstream ss;
ss << 1 << '+' << 2.0 << "=" << 1 + 2;
std::string s = ss.str(); // "1+2=3"

広告

関連するオススメの記事