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

задача стоит так : Список фамилий вводится через запятую в виде строки. Упорядочить фамилии по алфавиту - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определённый интеграл.Метод трапеции http://www.cyberforum.ru/cpp-beginners/thread902163.html
Здравствуйте!Помогите пожалуйста в написании кода в Си для вычисления определённых интегралов методом трапеций! (если можно с пояснениями!)
C++ Перегрузка getline Доброго времени суток. Создаю класс для обработки математических функций, и возникла потребность(нужно ли?) считывать из любого потока. Но дальше первого цикла програма не идет :<. Среда разработки - консольное приложение Qt 5.0.2 (все по дефолту. ибо нуб и только сегодня поставил, подахреневал с примеров и решил что-нибудь свое сотворить :) ) Вот фрагмент кода: void... http://www.cyberforum.ru/cpp-beginners/thread902152.html
C++ Проверка делимости числа на 11
Проверьте, делится ли число на 11 по следующему признаку: число делится на 11, если у него разность между суммой цифр, занимающих четные места, и суммой цифр занимающих нечетные места, кратна 11.
C++ Структурированные типы данных. Массивы С ++
Из заданной матрицы удалить К-ю строку и L-й столбец. Добавлено через 19 минут #include "stdafx.h" #include "stdafx.h" #include <iostream> #include<CONIO.H> #include<math.h> using namespace std;
C++ Написать программу, которая по последней цифре числа позволяет определить последнюю цифру его квадрата http://www.cyberforum.ru/cpp-beginners/thread902128.html
13 Написать программу, которая по последней цифре числа позволяет определить последнюю цифру его квадрата. Использовать оператор выбора switch. Пример: Ввод Вывод 27 9
C++ Перегрузка операций Помогите перегрузить эту прогу 5 операциями #include "stdafx.h" #include <iostream> #include <cmath> #include <conio.h> using namespace std; class Horse { подробнее

Показать сообщение отдельно
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
15.06.2013, 05:05     задача стоит так : Список фамилий вводится через запятую в виде строки. Упорядочить фамилии по алфавиту
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
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <iterator>
 
int main()
{
    std::cout << "Naberit' familii cherez komy: ";
    std::string line;
    char ch;
    std::string surname;
    std::vector<std::string> surnameCont;
 
    while (std::cin.get(ch))
    {
        switch (ch)
        {
            case ',':
            case ' ':
            case '\t':
            case '\n':
                if (!surname.empty())
                {
                    surnameCont.push_back(surname);
                    surname.clear();
                }
                break;
            default:
                surname.push_back(ch);
                break;
        }
        if (ch == '\n')
        {
            break;
        }
    }
 
    std::sort(surnameCont.begin(), surnameCont.end());
    std::copy(surnameCont.begin(), surnameCont.end(), 
            std::ostream_iterator<std::string> (std::cout, " "));
    std::cout << std::endl;
}
Добавлено через 59 минут
Вот ещё вариант с ручным выделением памяти:
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <iostream>
#include <cstring>
 
#define GUESS_WORD_SIZE 30
#define GUESS_WORDS_COUNT 20
 
void bsort(char** base, int sz)
{
    for (int i = 1; i < sz; ++i)
    {
        for (int j = sz-1; j >= i; --j)
        {
            if (strcmp(base[j], base[j-1]) < 0)
            {
                char* tmp = base[j];
                base[j] = base[j-1];
                base[j-1] = tmp;
            }
        }
    }
}
 
int main()
{
    std::cout << "Naberit' familii cherez komy: ";
    char word[GUESS_WORD_SIZE], ch;
    char** line = new char*[GUESS_WORDS_COUNT];
    char* p_word = word;
    int lineIndex = 0;
 
    word[0] = 0;
    while (std::cin.get(ch))
    {
        switch (ch)
        {
            case ',':
            case ' ':
            case '\t':
            case '\n':
                {
                    if (word[0])
                    {
                        *p_word = 0;
                        char* surname = new char[strlen(word)+1];
                        strcpy(surname, word);
                        line[lineIndex++] = surname;
                        p_word = &word[0];
                    }
                    word[0] = 0;
                }
                break;
            default:
                *p_word++ = ch;
                break;
        }
        if (ch == '\n')
        {
            break;
        }
    }
    line[lineIndex] = 0;
 
    bsort(line, lineIndex);
    for (int i = 0; line[i]; ++i)
    {
        std::cout << line[i] << ' ';
    }
    std::cout << std::endl;
 
    for (int i = 0; i < GUESS_WORDS_COUNT; ++i)
    {
        delete [] line[i];
    }
    delete [] line;
}
 
Текущее время: 09:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru