Open In App

Program to format a number with thousands separator in C/C++

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

Given an integer N, the task is to print output of the given integer in international place value format and put commas at the appropriate place, from the right.

Examples

Input: N = 47634
Output: 47, 634

Input: N = 1000000
Output : 1, 000, 000

Approach: Follow the steps below to solve the problem:

  1. Convert the given integer N to its equivalent string.
  2. Iterate over the characters of the given string from the right to the left.
  3. After traversing every 3 characters, insert a ‘,’ separator.

Below is the implementation of the above approach:

C++




// C++ program to implement the
// above approach
  
#include <bits/stdc++.h>
using namespace std;
  
// Function to put thousands
// separators in the given integer
string thousandSeparator(int n)
{
    string ans = "";
  
    // Convert the given integer
    // to equivalent string
    string num = to_string(n);
  
    // Initialise count
    int count = 0;
  
    // Traverse the string in reverse
    for (int i = num.size() - 1;
         i >= 0; i--) {
        count++;
        ans.push_back(num[i]);
  
        // If three characters
        // are traversed
        if (count == 3) {
            ans.push_back(',');
            count = 0;
        }
    }
  
    // Reverse the string to get
    // the desired output
    reverse(ans.begin(), ans.end());
  
    // If the given string is
    // less than 1000
    if (ans.size() % 4 == 0) {
  
        // Remove ','
        ans.erase(ans.begin());
    }
  
    return ans;
}
  
// Driver Code
int main()
{
    int N = 47634;
    string s = thousandSeparator(N);
    cout << s << endl;
}


Output:

47,634

Time Complexity: O(log10N)
Auxiliary Space: O(1)



Last Updated : 31 Oct, 2020
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads