Перейти к содержимому

Как отсортировать по алфавиту в с

  • автор:

Сортировка по алфавиту (с++)

Нужно отсортировать массив слов по алфавиту, (честно лазил, пытался вникнуть, но с указателями не дружу) Проблема в том, что я не могу понять как сравнить char в массиве строк (выдавал ошибку). Еще выдает ошибку Process finished with exit code -1073741819 (0xC0000005).

 #include #include using namespace std; int main() < char **mass = new char *[8]; for(int i = 0; i<7;i++) < mass[i] = new char[20]; cin >> mass[i]; > for(int i = 0 ; i < 7; i++)< for(int j = i+1; j < 8; i++) if(strcpy(mass[i], mass[j]) >0) < char* tmp = mass[i]; mass[i] = mass[j]; mass[j] = tmp; >> for(int i = 0; i < 8; i++)< cout return 0; > 

Отслеживать
Роман Емельянов
задан 21 мая 2016 в 16:10
Роман Емельянов Роман Емельянов
21 1 1 золотой знак 1 1 серебряный знак 4 4 бронзовых знака
strcpy копирует строки, а нужно, strcmp , чтобы их сравнить — это первая ошибка.
21 мая 2016 в 16:14
Вы считываете всего 7 строк, а у вас, как я понял из контекста, их 8 — это вторая ошибка.
21 мая 2016 в 16:14

Во втором цикле вместо i++ должно быть j++ — это третья. У меня сложилось ощущение, что вы просто пошутили и решили проверить, кто найдёт все опечатки : )

21 мая 2016 в 16:17

извините, просто целый день пытаюсь разные варианты этой сортировки применить, к концу дня уже голова не варит(

21 мая 2016 в 16:18

используйте std::cin , std::cout для ввода-вывода, а для хранения слов — std::string — они гораздо более удобны и безопасны, чем работа напрямую с массива char[]

Сортировка строк string C++ по алфавиту между собой

Есть задача. У меня дан массив типа string. Нужно отсортировать их между собой по алфавиту. Пробовал strcmp — не работает. Прошу вас, кто может, напишите, пожалуйста, пример с комментариями, чтобы можно было разобраться! Заранее благодарю!

Дополнен 5 лет назад

Попробовал сделать вот так:
— На 1 фото пример сортировки, который я тестил вне проекта с классом и именно там все работает.
— На 2 фото тот же пример, только я уже попробовал реализовать его в классе. Но вот возникла проблема: значения не сравниваются (см результат на 3м фото).

Лучший ответ
Обычное сравнение, как и для чисел. Например, s1 > s2.
strcmp — не для типа string
Герман ВольфУченик (115) 5 лет назад

Я понимаю, что оно обычное. Но дело еще в том, что я делаю это сравнение в методе класса, используя его объекты. Можно поподробнее, пожалуйста, расписать?

thegreatbillyПрофи (611) 2 года назад
Реально лучший
Остальные ответы
Сравниваешь первый символ и меняешь местами. Это как пузырьковая сортировка
Герман ВольфУченик (115) 5 лет назад

А можно, пожалуйста, поподробнее. Учитывая то, что я делаю это сравнение в методе класса, используя его объекты.

Как отсортировать по алфавиту в с

Условие: Дана строка слов разделенных запятыми, в конце строки точка.
Задача: Вывести на экран все слова остортированные в алфавитном порядке. (кириллицу можно не использовать)

Я знаю что можно как-то использовать функцию strcmp () но никак не могу разобраться как.

Вот мой вариант кода, но мне кажеться сильно замудренный от того и запутался наверное.

#include #include #include using namespace std; void filter(char *string, int n, int x, char **new_str) < for (int i=0, j=0;ielse < j++; continue; >> void main () < char *string = new char [100]; int x=0,n=0,y=0; gets(string); n = strlen (string); for (int i=0;ichar **new_str = new char* [x]; for (int i = 0; i filter (string,n,x,new_str); for (int i=0;i delete [] string; for (int i=0;i delete [] new_str; >

Прошу помочь с решением, если можно с небольшими комментариями для понимания.

Как отсортировать по алфавиту в с

Здравствуйте! Помогите, пожалуйста. Задание:
1. Создать структуру Worker, которая содержит: ФИО, должность, год поступления на работу
2. Отсортировать список фамилий по алфавитному порядку и вывести на экран
3. Отсортировать людей по стажу, который вводится с клавиатуры
Нужна помощь — программа не сортирует по фамилиям
#include
#include
#include
#include
#include
#include

using namespace std;

int main()
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
// Локализация Русского, без него некорректно отображаются фамилии

int net, Num, i, r, j;
struct Worker
char WK[40]; // Фамилия и инициалы сотрудника
char HR[40]; // Должность
int mark; // Год поступления на работу
>;

Worker* box = new Worker[Num]; //выделение в памяти места под массив
Worker tmp;

// работает то, что ниже

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

https://kodirovanie.vyvod-iz-zapoya-na-domu-moskva-snp.ru/