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

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

Восстановить пароль Регистрация
 
Fantasmaforia
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 48
21.05.2014, 18:05     Сортировка строки по алфавиту #1
Здравствуйте, нужно отсортировать строку по алфавиту. Подскажите, как это реализовать?
Есть массив
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++
C++ Сортировка по алфавиту
сортировка по алфавиту C++
Сортировка по алфавиту 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
15 / 15 / 1
Регистрация: 23.03.2013
Сообщений: 140
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" );
 
}
Yandex
Объявления
21.05.2014, 19:06     Сортировка строки по алфавиту
Ответ Создать тему
Опции темы

Текущее время: 08:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru