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

Напечатать слова в алфавитном порядке - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Что здесь не так http://www.cyberforum.ru/cpp-beginners/thread326724.html
Я хотел сделать программу для сложения двух чисел. после ввода второго слагаемого окно пропадает, я не могу найти свою ошибку Помогите найти. #include <iostream> using namespace std; int...
C++ Разработайте класс стеков Разработайте класс стеков для хранения символов с реализацией в виде массива. Создать стек и заполнить его произвольными символами (буквами и цифрами). Создайте два новых стека, в один поместите... http://www.cyberforum.ru/cpp-beginners/thread326723.html
C++ дано целое число
Дано целое число (положительное или отрицательное). Получить строку из 32 символов '0' и '1', которая будет давать представление этого целого числа в a)дополнительном двоичном коде b)двоичном...
C++ Запись данных класса в файл
Не могу никак разобраться что же я делаю не так. В общем есть написанный элементарный класс ClientData, я хочу записать объект такого типа в файл, а потом считать его из файла. Файл СlientData.h ...
C++ Функция http://www.cyberforum.ru/cpp-beginners/thread326699.html
Нужна помощь в решении этой функции. Помогите пжл Зарание спс.
C++ Разница между seekg() и seekp() В чём же разница? Вот допустим открыл я файл: fstream file("trans.dat",ios::out|ios::in|ios::binary); Какая разница между file.seekg(0) и file.seekp(0) в этом случае?Да и есть ли она вообще?... подробнее

Показать сообщение отдельно
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
27.06.2011, 22:04
В текстовом файле записаны слова, разделенные пробелами. Известно, что
число слов не превышает 90 слов, длина слов от 1 до 20 символов, межу
соседними словами – не менее одного пробела. Напечатать эти слова в
алфавитном порядке. Указание. При размещении слов в памяти выделяйте
память под каждое слово, адреса слов храните в массиве символьных
указателей.
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
#include <iostream>
#include <iomanip>
#include <fstream>
#include <algorithm>
#include <cstddef>
#include <cstring>
#include <cerrno>
 
struct Cmp
{
    bool operator()(const char* a, const char* b) const
    {
        return std::strcmp(a, b) < 0;
    }
};
 
int main(int argc, char* argv[])
{
    if(argc < 2)
    {
        std::cout << argv[0] << ": no input file\n";
        return 0;
    }
 
    std::ifstream inFile(argv[1]);
    if(!inFile)
    {
        std::cerr << argv[1] << ": " << std::strerror(errno) << '\n';
        return 1;
    }
 
    const std::size_t Max_Words_Count = 90;
    const std::size_t Max_Word_Len = 21;
 
    char buf[Max_Word_Len];
    char* words[Max_Words_Count];
 
    std::size_t n = 0;
    while( (inFile >> std::setw(Max_Word_Len) >> buf) && (n < Max_Words_Count) )
        words[n++] = std::strcpy(new char[std::strlen(buf) + 1], buf);
 
    inFile.close();
 
    std::sort(words, words+n, Cmp());
 
    for(std::size_t i = 0; i < n; ++i)
    {
        std::cout << words[i] << '\n';
        delete[] words[i];
    }
 
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru