Я хочу разделить цифры данного номера 3 на 3.
Ввод: 1234567
Выход: 1 234 567
И я написал следующий код:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string StringIn;
string::iterator it1, it2;
cout << "Enter a number with any number of digits: ";
cin >> StringIn;
unsigned int len = StringIn.length();
it1 = StringIn.end();
if (len % 3 == 0)
for (int i = 1; i < len / 3; i++)
{
it2 = it1 - 3 * i;
StringIn.insert(it2, ',');
}
else
for (int i = 1; i <= len / 3; i++)
{
it2 = it1 - 3 * i;
StringIn.insert(it2, ',');
}
cout << StringIn << endl;
system("pause");
return 0;
}
Как вы видите на следующих фотографиях, код отлично работает для числа с
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 цифр
16, 17, 18, 19, 20, 21, 22, 23, 24 цифр
32, 33, 34, 35, 36 цифр
Но это вызывает точку останова для определенного количества цифр. Это определенное количество цифр: 13, 14, 15, 25, 26, 27, 28, 29, 30, 31
.
Здесь я отследил код для 13 цифр.
![enter image description here](https://i.stack.imgur.com/xsAbH.png)
![enter image description here](https://i.stack.imgur.com/YDPbQ.png)
![enter image description here](https://i.stack.imgur.com/f1YXD.png)
![enter image description here](https://i.stack.imgur.com/SC8H1.png)
![enter image description here](https://i.stack.imgur.com/8xU2O.png)
![enter image description here](https://i.stack.imgur.com/KLXdD.png)