Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Fantasmaforia
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 48
#1

Сортировка строки по алфавиту - C++

21.05.2014, 18:05. Просмотров 271. Ответов 3
Метки нет (Все метки)

Здравствуйте, нужно отсортировать строку по алфавиту. Подскажите, как это реализовать?
Есть массив
C++
1
2
const int n =1000;
char* a = new char[n];
который заполняется с клавиатуры чем-то подобным вот такому: "kjabdsflkjhnmKLJHLqweKJHlkjhkljsadfnfkljbsdasdvbnlkoptlfkjNLKJns"
И вот это нужно отсортировать по алфавиту
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2014, 18:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка строки по алфавиту (C++):

Сортировка строки по алфавиту в классе String - C++
Здравствуйте! Создал класс Stroka: #include <iostream> #include <string> using namespace std; class Stroka { ...

Сортировка по алфавиту - C++
Нужно отсортировать список студентов за месяцем рождения, Студенты, месяц у которых одинаков - должны быть отсортированы по алфавиту(их...

Сортировка по алфавиту - C++
На вход подается некоторое количество описаний книг (автор, название, количество страниц). Отсортировать и вывести в алфавитном порядке по...

Сортировка по алфавиту - C++
Доброго времени суток. Имеется задача: Описать структуру с именем ORDER, содержащую следующие поля: *расчетный счет плательщика ...

Сортировка по алфавиту - C++
На вход подается некоторое количество описаний книг (автор, название, количество страниц). Отсортировать и вывести в алфавитном порядке по...

Сортировка по алфавиту - C++
Доброго времени суток, появилась проблема: есть структура, читаю из файла, нужно вывести только те спектакли, которые поставленны введенным...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Tenzor
5 / 5 / 9
Регистрация: 21.05.2014
Сообщений: 29
21.05.2014, 18:27 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
int main() {
    // Максимальная длина
    const int n =1000;
    char* a = new char[n];
    // Считываем строку, учитывая пробелы, максимум - 1000 символов
    cin.getline(a,1000);
    // Вычисляем количество считанных с потока символов (длина нашей строки)
    int len = cin.gcount();
    // Сортируем методом пузырька, как обычные числа (в кодировке символы закодированы в алфавитном порядке)
    for(int i=len-1; i>=0; i--){
        for(int j=1; j<i; j++) {
            if(*(a+j-1)>*(a+j)) {
                char temp = *(a+j-1);
                *(a+j-1) = *(a+j);
                *(a+j) = temp;
            }
        }
    }
    cout << a << endl;
    return 0;
}
Fantasmaforia
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 48
21.05.2014, 18:35  [ТС] #3
Спасибо большое!
karaulov6
-42 / 23 / 2
Регистрация: 23.03.2013
Сообщений: 238
Завершенные тесты: 1
21.05.2014, 19:06 #4
А у меня такое получилось xD

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
 
using namespace std;
int main( )
{
    // Максимальная длина строки
    int maxchars = 1000;
    // Новый массив
    char * line = new char[ maxchars ];
    // Запись строки
    cin >> line;
    // Вывод строки
    cout << endl << "Line:" << line << endl;
    // Длина строки
    int len = strlen( line );
 
    // Сортировка
    for ( int n = 0; n < len; n++ )
    {
        //Перебираем все символы
        for ( int x = 0; x < len; x++ )
        {
            char curval = line[ x ];
            //Найти меньшее
            for ( int y = x; y < len; y++ )
            {
                if ( line[ y ] < curval )
                {
                    char curval2 = line[ y ];
                    line[ y ] = curval;
                    line[ x ] = curval2;
                    break;
                }
            }
        }
    }
 
    // Новая строка
    cout << endl << "Line:" << line << endl;
 
    // Удаление массива
    delete[ ]   line;
    // Пауза
    system( "pause" );
 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2014, 19:06
Привет! Вот еще темы с ответами:

Сортировка по алфавиту - C++
Вот программа , там сортировка по нумерации поездов, а нужна по ПУНКТАМ назначения, кто знает поправите, спасибо. ...

Сортировка по алфавиту - C++
На вход подается некоторое количество описаний книг (автор, название, количество страниц). Отсортировать и вывести в алфавитном порядке по...

Сортировка по алфавиту - C++
Здравствуйте! Помогите отсортировать содержимое каталога по алфавиту. В этом каталоге может содержаться и другая папка. Просто я не...

Сортировка по алфавиту - C++
Правильные глаголы находятся и все нормально выводится, но сортировка по алфавиту не работает почему-то. В чем ошибка? for...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.05.2014, 19:06
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru