#include "stdafx.h"
#include <windows.h>
#include <string>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct home {
string name;
int room;
};
void sort(home **q, int n)
{
cout << "1-num. sort 2- Sortirovka po alfavity \n";
int kol;
cin >> kol;
switch (kol) {
case 1:
for (int i = 0; i < n; i++) { // метод пузырька для int room + cout
for (int j = 0; j < n - i - 1; j++) {
if (q[j]->room > q[j + 1]->room) {
home *temp = q[j];
q[j] = q[j + 1];
q[j + 1] = temp;
}
}
}
for (int i = 0; i < n; i++) {
cout << q[i]->name << " " << q[i]->room << " \n ";
} break;
case 2:
// сортировка по алфавиту для string name;
break;
}
}
int main() {
cout << "1 input 2 out \n";
int active;
int n = 3;
home **q = new home*[n];
home *p = new home[n];
do {
cin >> active;
switch (active)
{
case 1:
for (int i = 0; i < 3; i++) {
cout << "Name Age \n ";
cin >> p[i].name >> p[i].room;
for (int i = 0; i < n; i++) {
q[i] = &p[i];
}
}
break;
case 2:
}
} while (active != 0);
system("Pause");
return 0;
}
Собственно говоря мне нужно отсортировать " string name;" по алфавиту. Желательно без указателей и векторов. Принимаю любой ответ который поможет мне сделать программу ( ссылки, фрагменты кода ). Спасибо
P.S код может быть корявым так как ещё новичок в с++.
Без указателей никак, извиняй.
// Сортировка по алфавиту
void sortByAlphabet(std::string *sourceArray, const int &arraySize) {
// Сортируем
for (int i=0; i < arraySize; ++i) {
for (int j=i+1; j < arraySize; ++j) {
if (sourceArray[i] > sourceArray[j]) {
std::string tempStorage = sourceArray[i];
sourceArray[i] = sourceArray[j];
sourceArray[j] = tempStorage;
}
}
}
}
// Здесь мы делаем все первые буквы маленькими (т.е. Т теперь t)
// Работает лишь с ASCII, т.е. с английскими буквами
void toLowercase(std::string *stringArray, const int &arraySize) {
const int additionalValueForLowercase = 'a' - 'A';
for (int i=0; i < arraySize; ++i) {
// Если первая буква - большая, то переводим в маленькую
if (stringArray[i][0] >= 'A' && stringArray[i][0] <= 'Z') {
stringArray[i][0] += additionalValueForLowercase;
}
}
}
int main()
{
std::string sourceArray[5] = {"Tom", "jery", "hapchushka", "Juggernaut", "Shrek"};
toLowercase(&sourceArray[0], 5);
sortByAlphabet(&sourceArray[0], 5);
cout << endl << "Result" << endl;
for (int i=0; i < 5; ++i) {
cout << sourceArray[i] << " ";
}
return 0;
}
Вывод: hapchushka jery juggernaut shrek tom
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как можно запустить команду cmd через system(""); что бы при этом не открывалась консоль именно при вызове system("");
Почему потоковый width для изменения принимает параметр типа std::streamsize, в то время как манипулятор setw принимает простой int? Насколько я понимаю,...
Можно ли как-то проинициализировать n элементов std::vector<int> по-умолчанию, те
Надо при помощи генератора случайных чисел сформировать 10 чисел в файлеНайти сумму максимального и минималного числа в файле