Осуществить правильный вывод из программы

Всем доброго времени суток, друзья. Пишу лабораторную работу по теме "Строки, использование стандартных библиотек 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;
}

Буду очень благодарный за помощь!!!)))


Ответы (0 шт):