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

[C++] Дана строка. расположить в ней слова в алфавитном порядке. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ навигация по двусвязному списку http://www.cyberforum.ru/cpp-beginners/thread431154.html
Проблема с перемещением по двусвязному списку (67 и 71 строки) в этой программе: #include <iostream> #include <string> using namespace std; struct Tnode { string word; int count;
C++ Сортировка методом Шелла, ошибки чуть ли не в каждой строке Выдал полно ошибок сортировки массива из 30 случайных значений: #include <stdio.h> #include <stdlib.h> void shell_sort(int array, int size) { int temp, gap, i, exchange_occurred; http://www.cyberforum.ru/cpp-beginners/thread431149.html
C++ многомерный массив.хелп
задаем количество столбцов, строк, элементы.дополнить массив столбцом и строкой, которые показывают сумму элементов столбца и строки соответственно. всё просто, но не знаю как в Си (*.C) сделать.
C++ Деление строки на подстроки
Приветсвую. Вопрос такого плана, в php есть очень удобная функция explode. Её смысл в следующем: $data = "word1|word2|word3|...|wordn"; list($var1,$var2,$var3,...,varn) = explode("|",$data); Функция разбивает строку, разделённую каким бы то ни было символом (в данном примере "|") и записывает кусочки в соответствующие переменные. Результатом будет $var1=word1; $var2=word2; //и так далее
C++ убрать не дочеты в программе http://www.cyberforum.ru/cpp-beginners/thread431115.html
14. Написать программу, вычисляющую сумму и среднее арифметическое последовательности положительных чисел, которые вводятся с клавиатуры. #include<iostream.h> #include<conio.h> #include<math.h> main() { int s,i; float credar;
C++ winApi изучение прошу посоветтовать литературу или статьи для изучения WinAPI . Скачал книгу Щупака что-то не очень доганяю. Нужно что-то для новичков. Заранее спасибо подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
20.01.2012, 01:56     [C++] Дана строка. расположить в ней слова в алфавитном порядке.
Виль, на таком С++ уныло что-либо писать. Вот на С
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
77
78
79
80
81
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
typedef struct NODE {
    char * word;
    int count;
    struct NODE * left;
    struct NODE * right;
} node_t;
 
int add_word(node_t ** t, const char * w){
    if ( ! *t ){
        if ( ! ( *t = (node_t*)malloc(sizeof(node_t)) ) )
            return -1;
        if ( ! ( (*t)->word = strdup(w) ) ){
            free(*t);
            return -1;
        }
        (*t)->count = 1;
        (*t)->left = NULL;
        (*t)->right = NULL;
        
        return 0;
    }
    else {
        int cmp = strcmp((*t)->word, w);
        if ( cmp > 0 )
            return add_word(&(*t)->left, w);
        else if ( cmp < 0 )
            return add_word(&(*t)->right, w);
        else {
            (*t)->count += 1;
            return 0;
        }
    }
}
 
void del_words(node_t ** t){
    if ( *t ){
        del_words(&(*t)->left);
        del_words(&(*t)->right);
        free((*t)->word);
        free(*t);
        *t = NULL;
    }
}
 
void print_words(const node_t * t){
    if ( t ){
        int i;
        print_words(t->left);
        for ( i = 0; i < t->count; ++i )
            printf("%s ", t->word);
        print_words(t->right);
    }
}
 
#define DELIM " .,!?-\t\n"
 
int main(void){
    char buf[BUFSIZ], * p;
    
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ){
        node_t * tree = NULL;
        
        for ( p = strtok(buf, DELIM); p != NULL; p = strtok(NULL, DELIM) ){
            if ( add_word(&tree, p) ){
                fprintf(stderr, "Memory error!\n");
                exit(1);
            }
        }
        
        printf("Sorted: ");
        print_words(tree);
        printf("\n");
        del_words(&tree);
    }
    
    return 0;
}
[C++] Дана строка. расположить в ней слова в алфавитном порядке.

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