Тема: Як відсортувати строки за алфавітом?
Потрібно за першим стовпцем(Найменування товару) відсортувати її за алфавітом.
#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_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" << "Тип товарy: ";
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 (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;
}
Знаю алгоритми, але не знаю як відсортувати за структурою. Як змінити:
for (int i = 0; i < cntr; i++) {
for (int j = 0; j < cntr; j++) {
int a = stationery.name_type;
int b = cntr[j + 1];
if (a > b) {
string buf = cntr[j];
cntr[j] = cntr[j + 1];
cntr[j + 1] = buf;
}
}
cout << str << endl;
}