Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2020, 07:55   #1
sesitos040387s
Пользователь
 
Аватар для sesitos040387s
 
Регистрация: 21.11.2019
Сообщений: 18
По умолчанию Существует массив строк нужно удалить из него самую короткую строку

Доброго времени суток. Подскажите пожалуйста по такой задачке.(Существует массив строк нужно удалить из него самую короткую строку) нужно сделать динамическим массивом.Я начал делать и застрял,возможно подскажите каким-то примером
Код:
#include <iostream>
#include <string>
using namespace std;
int main()
{
    int quant, min;
    cout << "Enter quantity: "; 
    cin >> quant;
    cout << endl;
    string* arr = new string[quant];
    string str;
 
    for (int i = 0; i < quant; i++)
    {
        getline(cin, str);
        
        arr[i] = str;
    }
 
    min = arr[0].size();
 
    for (int i = 0; i < quant; i++)
    {
        if (min < arr[i].size())
        {
            min = arr[i].size();
        }
    }
 
    for (int i = 0; i < quant; i++)
    {
        if (min == arr[i].size())
        {
            arr[i] = "";
        }
    }
 
    cout << "\n\n---------------\n\n";
 
    for (int i = 0; i < quant; i++)
    {
        for (int j = i; j < quant; j++)
        {
            if (arr[i] == "")
            {
                string temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }
 
        if (arr[i] == "")
        {
            quant--;
        }
    }
 
    for (int i = 0; i < quant; i++)
    {
        cout << arr[i] << endl;
    }
 
    delete[] arr;
 
    system("pause");
    return 0;
}
sesitos040387s вне форума Ответить с цитированием
Старый 11.04.2020, 08:21   #2
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 960
По умолчанию

Код:
#include <iostream>
#include <string>
#include <algorithm>

int main()
{
    std::cout << "Enter quantity: "; 

    int quant=0;
    std::cin >> quant;
    getchar();//убираем перевод строки из потока

    std::cout <<'\n';
   
    std::string* arr = new std::string[quant];
    
    for (int i = 0; i < quant; i++)
    {
        std::string str;
        getline(std::cin, str);
        arr[i] = str;
    }
 
    const auto it= std::min_element(arr,arr+quant,[](auto l, auto r)
    {
        return l.size()<r.size();
    });
    
    if(it!=arr+quant)
    {
        const auto new_end=std::remove(arr,arr+quant,*it);
        quant=new_end-arr;
    }

    std::cout << "---------------\n";
 
    for (int i = 0; i < quant; i++)
    {
        std::cout << arr[i] << std::endl;
    }

    delete[] arr;
    arr=0;
 
    return 0;
}
Алексей1153 вне форума Ответить с цитированием
Старый 11.04.2020, 08:42   #3
sesitos040387s
Пользователь
 
Аватар для sesitos040387s
 
Регистрация: 21.11.2019
Сообщений: 18
По умолчанию

Алексей1153, благадорю вас за помощь,хорошего дня
sesitos040387s вне форума Ответить с цитированием
Старый 11.04.2020, 08:44   #4
sesitos040387s
Пользователь
 
Аватар для sesitos040387s
 
Регистрация: 21.11.2019
Сообщений: 18
По умолчанию

Вопрос закрыт

Последний раз редактировалось sesitos040387s; 11.04.2020 в 21:16.
sesitos040387s вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить самую длинную и самую короткую строку файла Jadson Помощь студентам 6 20.07.2012 00:30
Двунаправленный линейный список строк. Вставить строку, удалить строку и заменить строку tarasman11 Паскаль, Turbo Pascal, PascalABC.NET 4 05.07.2012 20:27
Дан текстовый файл f. Получить самую короткую строку файла. larissia Помощь студентам 1 07.06.2012 21:42
Работа с файлами .Найти самую длинную и самую короткую строки. britannia C# (си шарп) 1 03.06.2011 13:45
Pascal создать файл и вывести самую короткую строку mrRastom Помощь студентам 0 01.06.2011 19:42