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

Напечатать слова в алфавитном порядке - 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) в этом случае?Да и есть ли она вообще?... подробнее

Показать сообщение отдельно
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
27.06.2011, 23:42
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
76
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define DELIMS " .,"
 
void str_nl_remove(char *, int);
int compare(const void *, const void *);
 
int main()
{
    char **words = NULL;
    char *word;
    char buf[BUFSIZ];
    size_t cnt = 0;
    size_t i = 0;
    FILE *input_file;
 
    printf("Enter a file name: ");
    fgets(buf, BUFSIZ, stdin);
    str_nl_remove(buf, strlen(buf));
 
    if ((input_file = fopen(buf, "r")) == NULL) {
        fprintf(stderr, "Cannot open file \"%s\"\n", buf);
        exit(1);
    }
 
    while (! feof(input_file)) 
    {
        if ((fgets(buf, BUFSIZ, input_file)) == NULL) {
            puts("Error while reading from file!\n");
            exit(2);
        }
        str_nl_remove(buf, strlen(buf));
 
        for (word = strtok(buf, DELIMS);
            word != NULL;
            word = strtok(NULL, DELIMS))
        {
            ++cnt;
            if((words = (char **)realloc(words, cnt * sizeof(char *))) == NULL)
            {
                fputs("Cannot allocate memory\n", stderr);
                exit(3);
            }
            if((words[cnt - 1] = strdup(word)) == NULL)
            {
                fputs("Cannot duplicate word\n", stderr);
                exit(4);
            }
        }
 
    }
    qsort(words, cnt, sizeof(char *), compare);
 
    for (i = 0; i < cnt; ++i) {
        printf("%s\n", words[i]);
        free(words[i]);
    }
    free(words);
    exit(0);
}
 
void str_nl_remove(char *str, int len)
{
    if (len > 0 && str[len-1] == '\n') {
        str[len-1] = '\0';
    }
}
 
int compare(const void *s1, const void *s2)
{
    return strcmp(
        *(const char * const *)s1,
        *(const char * const *)s2);
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.