Qstairs

現役AIベンチャーCTOの知見、画像認識(人工知能、Deep Learning)を中心とした技術ノウハウをアップしていきます

広告

【C++】数値を3文字ごとに「,(カンマ)」区切りする方法

f:id:qstairs:20160601221351j:plain

はじめに

数値の桁をわかりやすくするために、
3文字ごとに「,」区切りしたい時があります。

そこで、今回はC++での
数値を3文字ごとに「,」区切りする方法
について紹介します。
#今回紹介する方法以外に色々なやり方があります。

※今回は負の値は考慮していません。



ソースコードと結果

ソースコードは以下になります。
文字列を更新して3文字以下になるまでループしているのが肝ですね。

#include <string>
#include <iostream>

using namespace std;

int main()
{
  int val = 1234567890;

  string str = to_string(val);  // 数値をstring型に変換
  string dst = "";  // 出力
  while (str.length() > 3) {  // 「,」をつける必要があるまでループ
    dst = "," + str.substr(str.length() - 3, 3) + dst;  // 3文字ごとに「,」で区切る
    str = str.substr(0, str.length() - 3);  // 文字列を更新
  }
  dst = str + dst;  // 最後に「,」をつける必要がない文字列と結合する
  
  cout << val << " -> " << dst << endl;

  return 0;
}

結果は以下になります。

1234567890 -> 1,234,567,890

最後に

今回は
数値を3文字ごとに「,」区切りする方法
について紹介しました。

結構シンプルなソースで実現できたので、
個人的には納得しています。

広告