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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2017, 19:14   #1
laketych
Пользователь
 
Регистрация: 22.12.2015
Сообщений: 37
По умолчанию Как отсортировать string структуру по алфавиту

Код:
#include <iostream>
#include <string>
#include <Windows.h>
#include <iomanip>
#define SIZE 10
 
using namespace std;
 
struct Stationery {
    string name_type;
    char item_type;
    short int min_amount;
    double price;
}stationery[SIZE];
 
int main() {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    int cntr;
 
    cout << "Данные: " << endl;
    for (cntr = 0; cntr < SIZE; cntr++) {
        cout << cntr + 1 << ". Наименувание товара: ";
        cin >> stationery[cntr].name_type;
 
        if (stationery[cntr].name_type == "Конец") {
            break;
        }
 
        cout << "\t" << "Тип товара: ";
        cin >> stationery[cntr].item_type;
 
        cout << "\t" << "Цена за 1 шт.(руб.): ";
        cin >> stationery[cntr].price;
 
        cout << "\t" << "Минимальная стоимость товара: ";
        cin >> stationery[cntr].min_amount;
 
        cout << endl;
    }
 
    cout << endl << endl << endl << endl << endl;
    cout << "-------------------------------------------------------------------------------------------" << endl;
    cout << "|                                          Прайс-лист                                     |" << endl;
    cout << "-------------------------------------------------------------------------------------------" << endl;
    cout << "| Наименувание товара | Тип товара | Цена за 1 шт. (руб.) | Минимальная стоимость товара  |" << endl;
    cout << "-------------------------------------------------------------------------------------------" << endl;
    for (int cout_cntr = 0; cout_cntr < cntr; cout_cntr++) {
        cout << "|" << setw(14) << stationery[cout_cntr].name_type << setw(8) << "|" << setw(6) << stationery[cout_cntr].item_type << setw(7) << "|"
            << setw(13) << stationery[cout_cntr].price << setw(10) << "|" << setw(17) << stationery[cout_cntr].min_amount << setw(15) << "|"
            << endl;
        cout << "-------------------------------------------------------------------------------------------" << endl;
    }
    return 0;
}
Как отсортировать по алфавиту string стркутуру? СПАСИБО!
laketych вне форума Ответить с цитированием
Старый 23.11.2017, 11:00   #2
СтудПом
Форумчанин
 
Регистрация: 08.11.2017
Сообщений: 347
По умолчанию

А как собственно сравниваете строки?
"string структура" - это абсурд.
Вообще, судя по коду, у вас мешанина из C и C++. Будет тяжело разбираться.

сравнение строк на языке C
Код:
#include <string.h> 
int strcmp (const char *str1, const char *str2);
результат:
больше нуля, если первая строка должна идти "дальше по алфавиту"
ноль, если строки равны
меньше нуля, если первая строка "меньше"
т.е. сравнение идёт по кодам символов и первое неравенство даёт результат типа разности байт или ноль.
СтудПом вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отсортировать строки по алфавиту? laketych Общие вопросы C/C++ 0 15.11.2017 22:38
Отсортировать числа по алфавиту Scorpil Общие вопросы C/C++ 3 18.10.2008 01:32
Отсортировать по алфавиту Rio309 Помощь студентам 2 09.03.2008 22:52
Отсортировать по алфавиту asale Microsoft Office Excel 5 19.11.2007 22:01