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

Найти самое короткое из слов в предложении - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Реализация класса множество через двусвязный список. http://www.cyberforum.ru/cpp-beginners/thread377617.html
дали задание реализовать класс множество через двусвязный список. Сам класс список мне реализовать вроде удалось, но стоит загвоздка в том, как реализовать некоторые функции для множества: пересечение множеств (*), объединение множеств(+), и разность множеств (-), поиск заданного элемента, удаление и добавление его. для пересечение множеств (*), объединение множеств(+), и разность множеств...
C++ Построить класс для описания плоской геометрической фигуры прямоугольник Построить класс для описания плоской геометрической фигуры прямоугольник. Предусмотреть методы для создания объектов и изменения. http://www.cyberforum.ru/cpp-beginners/thread377593.html
ошибка в функции подскажите как исправить C++
в функции ввод списка с экрана, там был бесконечный цикл который прерывался операторов Break, препод сказал что это не грамотно прерывать цикл с помощью Break, попытался в while само условие написать но выдает такую ошибку " File3.cpp(119): E2378 Do-while statement missing ; Full parser context File3.cpp(106): parsing: sp * fs_enter()" че не так ??? using namespace std; char bufRus;...
C++ Определение матрицы смежности графа по заданной матрице инцидентности
Доброй ночи :) Изучаю графы, написал фукнцию для конвертации матрицы инцидентности в матрицу смежности, а наоборот не выходит. Слева на рисунке матрицы инцидентности, с неё получаю матрицу смежности. А обратно ерунду выдает... Подскажите идею, пожалуйста .
C++ Unicod http://www.cyberforum.ru/cpp-beginners/thread377531.html
Доброго времени суток. Подскажите кто знает достойный материал(возможно книги) по использованию юникода в срр приложениях. Об LPWSTR WCHAR и тд. С юникодам ранее практически не работал, а найти полной и исчерпывающей информации так и не получилось, в книгах которые изучал применялся acsi. Со string, *char уж давно разобрался, а тут начал изучать винапи (по Петзольдсу) и все бы хорошо, да...
C++ Найти все натуральные числа, не превышающие заданного N, которые делятся на каждую из своих цифр. Найти все натуральные числа, не превышающие заданного N, которые делятся на каждую из своих цифр. Надо решить через функцию .Без массивов. подробнее

Показать сообщение отдельно
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
06.11.2011, 14:00     Найти самое короткое из слов в предложении
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#include <stdio.h>
#include <string.h> 
 
void rmlf(char *s);
 
int main(void)
{
    char line[1000], *p;
    char word[100], tmp[100];
    int len, minlen;
    int c, state;
    
    fputs("Enter: ", stdout);
    fflush(stdout);
    /* при выводе fputs() нет перевода строки
       сообщение нужно вывести, иначе оно может
       быть выведено только в конце программы */
    
    if (fgets(line, sizeof line, stdin) == NULL)
        return 1;
    /* если строка не прочитана,
       вернуть признак ошибки в исполняющую среду */
    
    rmlf(line);
    /* удалить перевод строки в конце, если он есть */
    
    /* strcpy(line, "abcdab c defgababcd"); */
        
    minlen = 0;
    /* минимальная длина слова устанавливается в ноль,
       так как слов с длиной ноль не существует */
    
    state = 0;
    /* устанавливается первое состояние */
    
    for (p = line; (c = *p) != '\0'; p++)
        if (state == 0) {
            /* первое состояние */
 
            if (c != ' ') {
                /* если встречается признак слова,
                   перейти во второе состояние */
                
                len = 0;
                /* начальная длина слова */
                
                p--;
                /* во втором состоянии повторить обработку
                   текущего символа */
                
                state = 1;
                /* переход во второе состояние */
            }
            /* если признак слова не встретился,
               пропустить символ */
            
        } else {
            /* второе состояние */
            
            if (c != ' ') {
                /* если встречается признак слова,
                   сохранять символы слова во временную строку */
                
                tmp[len++] = c;
                /* занести символ слова во временный массив
                   нарастить текущую длину слова */
                
                tmp[len] = '\0';
                /* завершить текущее слово во временном массиве
                   нуль-символом */
            }
            if (c == ' ' || *(p + 1) == '\0') {
                /* если встретился признак конца слова
                   конец слова - символ разделитель или конец всей строки,
                   сравнить длину слова с минимальной длиной
                   перейти в первое состояние */
                
                if (minlen == 0 || len < minlen) {
                    /* если минимальная длина слова не установлена
                       или длина слова меньше миниальной длины слова,
                       сохранить минимальную длину слова и само слово */
                    
                    minlen = len;
                    /* сохранить новую минимальную длину */
                    
                    strcpy(word, tmp);
                    /* сохранить слово из временного массива в итоговый */
                }
                state = 0;
                /* переход в первое состояние */
            }
        }
    
    printf("Shortest: %s\n", word);
    
    return 0;
}
 
/* удаляет перевод строки в конце s */
void rmlf(char *s)
{
    if (*s != '\0') {
        while (*(s + 1) != '\0')
            s++;
        if (*s == '\n')
            *s = '\0';
    }
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru