string から int doubleなどの 数値 に変換するまたその逆の方法メモ

やりかたはたくさんあるみたいですが、一部簡単に紹介したいと思います。

まずは 

数値 から string

  • std::to_string(value);  #include<string>が必要です。<stringstream>でも可

string str1 = std::to_string(200.0f);//200.000000
string str2 = std::to_string(200);//200

 

string から 数値

  • sto〇〇 ○○には変換先の型が入ります。

#include<string> もしくは #include <sstream>

sto〇〇を使うためにはどちらかインクルードしてください。

string strCon = "100abc200";

int iNum = stoi( strCon ); //num = 100;
float fNum = stof( strCon );//fNum = 100.0f;
double dNum = stod( strCon );//dnum = 100.0f; 

 どうやら変換できない文字が含まれるとそこでやめてくれるようです。

  • stringstreamをつかう

#include <sstream> でインクルードすれば使えます。

stringstream ss;
ss << "200 300 400";
ss >> iNum;//iNum = 200; 

ss >> fNum;//fNum = 300.0f;

ss >> dNum;//dNum = 400.0f;

こちらも 変換できない文字が含まれるとそこでやめてくれるようです。

例を見たらわかりますが、連続でやると空白を挟んで次の数値を読み込んでいますね。これはstringstreamの使用なので、詳しくはこちらで

chocochoco.hatenablog.com