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

Вывод слова, содержащего мин и макс количество символов - C++

Восстановить пароль Регистрация
 
FireFist
Сообщений: n/a
22.12.2009, 15:00     Вывод слова, содержащего мин и макс количество символов #1
Помогите пожалуста! У меня должен быть зачет по ОП, нужно выполнить простенькое задание на обычном С (не ++), а я с языком Си вобще незнаком, в основном на на Делфи все делал раньше.
В общем задание следующее: Нужно вывести слово, содержащее максимальное и минимальное количество символов, строку пользователь вводит с клавиатуры. Выполняется через c=getchar(). Еще хотелось бы чтоб с комментариями - очень хочу разобратся для себя. Заранее спасибо за помощь!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2009, 15:00     Вывод слова, содержащего мин и макс количество символов
Посмотрите здесь:

C++ двумерный массив макс мин
Определить макс и мин цифры C++
C++ Одномерный массив макс мин
C++ Матрица мин макс, не правильно выводиться
список мин и макс элемент C++
C++ Массив поиск мин-макс элемента
Поменять местами макс и мин эл-ты массива C++
C++ Мин-макс в списке

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
22.12.2009, 16:07     Вывод слова, содержащего мин и макс количество символов #2
Цитата Сообщение от FireFist Посмотреть сообщение
Выполняется через c=getchar().
Не, с getchar() сложно...
Цитата Сообщение от FireFist Посмотреть сообщение
Еще хотелось бы чтоб с комментариями
А вот это - пожалуйста!
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
    
/* сравнивалка строк по длинне для qsort */
int wrdCmpAsc(const void *a, const void *b){
    return strlen(*(char**)a) - strlen(*(char**)b);
}
 
/* 
    вывести слово, содержащее максимальное и минимальное количество символов, 
    строку пользователь вводит с клавиатуры.
*/
 
int main(void){
    char **words, *pWord, buf[BUFSIZ];
    size_t size;
    
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    while ( 1 ){ /* бесконечный цикл */
        printf("Строка: ");
        if ( !fgets(buf, BUFSIZ, stdin) ){ /* прочитать строку */
            fprintf(stderr, "Can't get string!\n");
            exit(1);
        }
        if ( pWord = strrchr(buf, '\n') )
            *pWord = '\0'; /* удалить символ перевода строки */
        
        if ( !*buf )
            break; /* если строка пустая - на выход */
        
        /* разделение строки на массив слов */
        words = NULL;
        size = 0;
        for ( pWord = strtok(buf, " \t"); pWord != NULL; pWord = strtok(NULL, " \t") ){
            if ( ( words = (char**)realloc(words, sizeof(char*) * (size + 1)) ) == NULL ){
                fprintf(stderr, "Memory error!\n");
                exit(1);
            }
            if ( ( words[size] = strdup(pWord) ) == NULL ){
                fprintf(stderr, "Memory error!\n");
                exit(1);
            }
            ++size;
        }
        if ( !words ){
            fprintf(stderr, "Can't find some words!\n");
            exit(1);
        }
        
        /* сортировка массива слов */
        qsort(words, size, sizeof(char*), wrdCmpAsc);
        /* конец сортировки */
        
        /* вывод самого короткого и самого длинного слов */
        printf("Самое короткое: %s\n", *words);
        printf("Самое длинное: %s\n", *(words + size - 1));
        
        /* очистка памяти */
        do {
            free(words[--size]);
        } while ( size );
        free(words);
    }
    
    /* завершение программы */
    exit(0);
}
Yandex
Объявления
22.12.2009, 16:07     Вывод слова, содержащего мин и макс количество символов
Ответ Создать тему
Опции темы

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