I am trying to make a small program that takes a string and then adds commas to it in three character intervals, like how a currency amount would be formatted. (i.e. 1000 becomes 1,000 and 10000 becomes 10,000).
This is my attempt so far, and it almost works:
 #include <string>
 #include <iostream>
 using namespace std;
 int main() {
  string a = "123456789ab";
  int b = a.length();
  string pos;
  int i;
  for (i = b - 3; i >= 0; i-=3) {
    if (i > 0) {
      pos = "," + a.substr(i,3) + pos;
    }
  }
  cout << pos;
  return 0;
 } 
The output with the sample string is:
,345,678,9ab
It seems it doesn't want to grab the first 1 to 3 characters. What did I do wrong with my code?
 
     
    