Осуществить правильный вывод из программы
Всем доброго времени суток, друзья. Пишу лабораторную работу по теме "Строки, использование стандартных библиотек string.h". Я закончил код, сдал на проверку, но преподаватель сказал осуществить правильный вывод результата. Цитирую: "вместо словаря перед циклом ввести переменную типа char* result, а далее в цикле вместо добавления найденного числа в словарь дополнительно проверить: если количество цифр в нем равно максимальному найденному до сих пор, то конкатенировать это число к result (с пробелом), если больше, то сначала сначала опорожнить result, а затем конкатенировать. После этого останется просто убрать один из пробелов в конце или сначала и вывести результат." Я в ступоре, если честно, но понимаю что это сделать не так-то и сложно. Помогите пожалуйста. Вот мой код:
#include <iostream>
#include <cstring>
#include <stdio.h>
#include <cstring>
#include <map>
using namespace std;
int main()
{
char s1[256] = "12 cars in the garage, 11 cars. Take 1 down to drive, 10 cars in the garage. 10 cars in the garage, 10 cars. Take 1 down to drive, 9 cars in the garage. 9 cars in the garage, 9 cars.";
cout << "Input string: " << s1 << endl;
map< int, int> counters;
char* pch;
char* next_token = nullptr;
pch = strtok_s(s1, " ,.!?", &next_token); // получаем лексему из строки
while (pch != NULL)
{
if (isdigit(*pch))
{
int i = atoi(pch);
counters[i]++;
}
pch = strtok_s(NULL, " ,.!?", &next_token); // получаем следующую лексему из строки
}
char* result;
if (c.second == c.first)
{
c.first = result;
}
else {
result = 0;
c.first = result;
}
cout << result;
for (auto c : counters)
{
if (c.first >= 10)
{
for (int i = 0; i < c.second; i++)
{
cout << c.first << " ";
}
}
}
return 0;
}
Буду очень благодарный за помощь!!!)))