题干解读:输入一个整数N,将其先转为字符串,再从末尾到头部每3位加上一个分割符

思路:先用to_string将输入的整数转化为字符串.

由于是每3位数字前加入一个分割符','故使用一个变量j来标记原字符串中以及遍历过的字符的个数。

当j能够整除3时,就代表遍历了3个数,此时就该使用insert函数插入',',插入的位置应该是len(字符串在插入符号前的实际长度)-j(遍历原字符串的元素的个数)-n(字符串以及加入的符号的个数),即在原字符串中应该插入分隔符的位置。

注意:到每插入一个 后字符串的总长度变化,应用一个变量l记录初始长度,

最后为了避免在数字开头加入分隔符,循环的终止条件应为j<l-1即已经遍历的元素个数应该小于总元素个数-1.

#include <iostream>
#include <string>
using namespace std;

int main() {
    int N;
    cin >> N;
    string s = to_string(N);
    int j = 0;
    int l=s.length();//初始时的字符串长度.
    int len = s.length();//len为字符串s的实际长度.
    int n=0;//n为插入的,的个数
    do {
        n = j/3;//n为当前插入的,的个数
        j++;
        if (j % 3 == 0) {
            s.insert(len-j-n, ",");
            len++;
        }

    } while (j<l-1);
    cout << s;
}