GeezerVison is showing cpprefjp.github.io — std::to_string - cpprefjp C++日本語リファレンス
最終更新日時:
2026年09月11日 13時06分31秒 (JST)
Akira Takahashi
が更新
履歴
編集
function
<string>
std:: to_string (C++11)
namespace std {
string to_string ( int val ); // (1) C++11
constexpr string to_string ( int val ); // (1) C++26
string to_string ( unsigned int val ); // (2) C++11
constexpr string to_string ( unsigned int val ); // (2) C++26
string to_string ( long val ); // (3) C++11
constexpr string to_string ( long val ); // (3) C++26
string to_string ( unsigned long val ); // (4) C++11
constexpr string to_string ( unsigned long val ); // (4) C++26
string to_string ( long long val ); // (5) C++11
constexpr string to_string ( long long val ); // (5) C++26
string to_string ( unsigned long long val ); // (6) C++11
constexpr string to_string ( unsigned long long val ); // (6) C++26
string to_string ( float val ); // (7) C++11
string to_string ( double val ); // (8) C++11
string to_string ( long double val ); // (9) C++11
}
概要
数値valをstring 型文字列に変換する。
(1) : int型の値をstring 型に変換する
(2) : unsigned int型の値をstring 型に変換する
(3) : long型の値をstring 型に変換する
(4) : unsigned long型の値をstring 型に変換する
(5) : long long型の値をstring 型に変換する
(6) : unsigned long long型の値をstring 型に変換する
(7) : float型の値をstring 型に変換する
(8) : double型の値をstring 型に変換する
(9) : long double型の値をstring 型に変換する
戻り値
例
出力
123
3.140000
実装例
#include <cstdio>
#include <string>
#include <limits>
std::string to_string ( int val )
{
char buffer [ std::numeric_limits < int >:: digits10 + 1
+ 2 ]; // '-' + '\0'
std :: sprintf ( buffer , "%d" , val );
return buffer ;
}
std::string to_string ( unsigned int val )
{
char buffer [ std::numeric_limits < unsigned int >:: digits10 + 1
+ 1 ]; // '\0'
std :: sprintf ( buffer , "%u" , val );
return buffer ;
}
std::string to_string ( long val )
{
char buffer [ std::numeric_limits < long >:: digits10 + 1
+ 2 ]; // '-' + '\0'
std :: sprintf ( buffer , "%ld" , val );
return buffer ;
}
std::string to_string ( unsigned long val )
{
char buffer [ std::numeric_limits < unsigned long >:: digits10 + 1
+ 1 ]; // '\0'
std :: sprintf ( buffer , "%lu" , val );
return buffer ;
}
std::string to_string ( long long int val )
{
char buffer [ std::numeric_limits < long long int >:: digits10 + 1
+ 2 ]; // '-' + '\0'
std :: sprintf ( buffer , "%lld" , val );
return buffer ;
}
std::string to_string ( unsigned long long int val )
{
char buffer [ std::numeric_limits < unsigned long long int >:: digits10 + 1
+ 1 ]; // '\0'
std :: sprintf ( buffer , "%llu" , val );
return buffer ;
}
std::string to_string ( float val )
{
char buffer [ std::numeric_limits < float >:: max_exponent10 + 1
+ 6 // fixed precision (printf's default)
+ 3 ]; // '-' + '.' + '\0'
std :: sprintf ( buffer , "%f" , val );
return buffer ;
}
std::string to_string ( double val )
{
char buffer [ std::numeric_limits < double >:: max_exponent10 + 1
+ 6 // fixed precision (printf's default)
+ 3 ]; // '-' + '.' + '\0'
std :: sprintf ( buffer , "%f" , val );
return buffer ;
}
std::string to_string ( long double val )
{
char buffer [ std::numeric_limits < long double >:: max_exponent10 + 1
+ 6 // fixed precision (printf's default)
+ 3 ]; // '-' + '.' + '\0'
std :: sprintf ( buffer , "%Lf" , val );
return buffer ;
}
バージョン
言語
処理系
Clang : 3.0 ✅
GCC : 4.5.4 ✅
Visual C++ : 2010 ✅ , 2012 ✅ , 2013 ✅ , 2015 ✅ , 2017 ✅
2010は、不完全な実装。以下の型のみ多重定義されている。
long long
unsigned long long
long double
関連項目
参照