Необходимо реализовать счетчик из числа, записанного в String. Т.е. при каждой итерации цикла стринговое число надо увеличить на 1. Т.е. было "123", после следующей итерации должно стать "124" и т.д.
У меня проблема с разрядами. Вот такой кусок кода у меня увеличивает только от 0 до 9, а как сделать увеличение и добавление нового разряда (десятки, сотни и .т.д) - не знаю.
if(str[(str.size()-1]-'0'< 9)
str[(str.size()-1]+=1;
Как я понимаю, от человека хотят именно работу со строкой... Тогда - вот:
void inc(string&s)
{
int l = s.length();
bool carry = true;
for(int i = l-1; carry && i >= 0; --i)
{
if (carry) s[i]++;
if (carry = (s[i] > '9')) s[i] = '0';
}
if (carry) s = '1' + s;
}
int main(int argc, const char * argv[])
{
string s = "193";
for(int i = 0; i < 20; ++i)
{
inc(s);
cout << s << endl;
}
s = "993";
for(int i = 0; i < 20; ++i)
{
inc(s);
cout << s << endl;
}
}
Можно это сделать следующим образом, как показано в демонстрационной программе
#include <iostream>
#include <string>
int main()
{
std::string cnt( "999" );
std::cout << cnt << std::endl;
cnt = std::to_string( std::stoul( cnt ) + 1 );
std::cout << cnt << std::endl;
return 0;
}
Вывод программы на консоль:
999
1000
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости