Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
XaD
0 / 0 / 0
Регистрация: 19.05.2009
Сообщений: 15
#1

Вывести на экран слова перед которыми стоят запятая и пробел. - C++

11.11.2011, 08:22. Просмотров 1164. Ответов 14
Метки нет (Все метки)

Вывести на экран слова перед которыми стоят запятая и пробел. Не могу понять как ее реализовать чайниг в этом деле)

http://www.cyberforum.ru/cpp-beginners/thread2154330.html
Добавлено через 6 минут
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
int  main()
{   char  c;
        int  k ;
        printf("\n VV symbol: ");
    scanf("%c", &c);
    int  k = 0;
    while (c != '.')
    {   scanf("%c", &c);
        if (c == ',')
                        { k++ }
        {
                        if ( c == ' ' )
                        {
                                while (c!=' ')
                                {
                                        printf("%c", c);
                                        c++;
                                }
                         }
                }
                printf("%c", c);
    }
    return  k;
        getch ();
}
Добавлено через 43 секунды
уважаемые помогите пожалуйста. Это так набросок кода если что)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2011, 08:22
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вывести на экран слова перед которыми стоят запятая и пробел. (C++):

Напечатать только те слова, перед которыми в строке находятся только меньшие (по алфавиту) слова
Дана строка s, содержащая от 1 до 30 слов, в каждом из которых от 1 до 5...

Напечатать только те слова, перед которыми в строке находятся только меньшие слова, а за ними – только большие
Помогите написать программу на языке ANSI C или C++ Дана строка s,...

В строку через пробел вводятся слова. Отсортировать введенные слова по алфавиту. Результат вывести в виде столбца.
В строку через пробел вводятся слова. Отсортировать введенные слова по...

Между соседними словами – запятая, за последним словом – точка. Создать новый файл, содержащий все слова, отличные от последнего слова
Плиз помогите кто может в простом коде: Дан текстовый файл, содержащий...

Из заданного файла удалить все слова c двумя согласными и вывести на экран оставшиеся слова
Привет всем, в с++ не очень шарю, а до строк в изучении еще не дошел , поэтому ...

14
Dar101
40 / 40 / 7
Регистрация: 12.05.2011
Сообщений: 109
11.11.2011, 12:18 #2
У этой задачи много решений. Попробуйте простой перебор, что-то вроде этого:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <string.h>
#include <conio.h>
 
int main()
{
    bool print = false;
    char str[] ="Dostoyevsky's father Mikhail and grandfather, Andrey, were born in modern central Ukraine. Mikhail was a doctor and a devout Christian, who practised at the Mariinsky Hospital for the Poor in Moscow.";
 
    int len = strlen(str);
    for (int i=0; i<len; i++)
    {
        if (str[i]==32) print = false;
        if (str[i]==44 && str[i+1]==32) {print = true; i++;}
        if (print) printf("%c",str[i]);
    }
    getch();
    return 0;
}
1
talis
793 / 545 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
11.11.2011, 13:11 #3
Вот другой вариант. Посложнее, но, мне кажется, может быть интересен.

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
#include <iostream>
#include <string>
#include <iterator>
 
/* выводит только слов, стоящие после ", " */
template <typename InputIterator, typename OutputIterator>
OutputIterator & out_comma_space( InputIterator first, InputIterator last, OutputIterator result )
{
    enum : char { SMB_SPACE, SMB_COMMA, SMB_OTHER };         /* варианты символов */
    enum EState : char { NONE, COMMA, SPACE, OUT, OUT_END }; /* варианты состояний */
 
    /* матрица переходов */
    static const EState state_trans_matrix[5][3] =
    {
  /*              ' '      ','    other smb */
  /* NONE    */ { NONE,    COMMA,   NONE },
  /* COMMA   */ { SPACE,   COMMA,   NONE },
  /* SPACE   */ { SPACE,   COMMA,   OUT  },
  /* OUT     */ { OUT_END, OUT_END, OUT  },
  /* OUT_END */ { NONE,    COMMA,   NONE }
    };
 
    /* текущее состояние */
    EState state = NONE;
 
    while( first != last )
    {
        switch( *first )
        {
        case ',':
            state = state_trans_matrix[ state ][ SMB_COMMA ];
            break;
 
        case ' ':
            state = state_trans_matrix[ state ][ SMB_SPACE ];
            break;
 
        default:
            state = state_trans_matrix[ state ][ SMB_OTHER ];
            break;
        };
 
        switch( state )
        {
            case OUT_END:
               *result++ = ';';
               *result++ = ' ';
               break;
 
            case OUT:
               *result++ = *first;
            /* проваливаемся */
            case COMMA:
            case SPACE:
            case NONE:
               first++;
               break;
        }
    }
 
    return result;
}
 
int main( )
{
    std::string in;
 
    while( std::cout << '>' && std::getline( std::cin, in ) && in != "!quit" )
    {
        out_comma_space( in.begin(), in.end(), std::ostream_iterator<char>( std::cout ) );
        std::cout << '\n';
    }
 
    return 0;
}
Добавлено через 5 минут

Не по теме:

FIX: Добавил состояние SPACE

1
XaD
0 / 0 / 0
Регистрация: 19.05.2009
Сообщений: 15
11.11.2011, 18:28  [ТС] #4
Подскажите как написать эту программку с применением функции и флага
0
talis
793 / 545 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
11.11.2011, 18:35 #5
XaD, какого флага?
0
XaD
0 / 0 / 0
Регистрация: 19.05.2009
Сообщений: 15
11.11.2011, 18:43  [ТС] #6
во флаг регистрации символа записать пробел и запятую
0
talis
793 / 545 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
11.11.2011, 18:47 #7
Цитата Сообщение от XaD Посмотреть сообщение
Подскажите как написать эту программку с применением функции и флага
Цитата Сообщение от XaD Посмотреть сообщение
во флаг регистрации символа записать пробел и запятую
Собственно, вот ответ. Что конкретно не ясно?
0
XaD
0 / 0 / 0
Регистрация: 19.05.2009
Сообщений: 15
11.11.2011, 18:52  [ТС] #8
не могу записать это в программу, на словах понял примерно как но вот в программу записать тяжко
0
talis
793 / 545 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
11.11.2011, 18:55 #9
Цитата Сообщение от Dar101 Посмотреть сообщение
bool print = false;
У Dar101 это флаг, который говорит, была ли встречена "запятая - пробел".


Цитата Сообщение от talis Посмотреть сообщение
/* текущее состояние */
EState state = NONE;
Когда state == OUT, это говорит о том, что были встречены "запятая - пробел". Тоже своего рода флаг.

Добавлено через 27 секунд
Думаю, вариант Dar101 вас больше заинтересует.
1
XaD
0 / 0 / 0
Регистрация: 19.05.2009
Сообщений: 15
11.11.2011, 22:48  [ТС] #10
Dar101 запускаю программу хочу при вводе каких нибудь данных программка вылетает безо всяких ошибок. что я неправильно делаю?
0
Dar101
40 / 40 / 7
Регистрация: 12.05.2011
Сообщений: 109
11.11.2011, 22:57 #11
XaD, не совсем понял. То есть программа запускается, но вылетает?
А слова раздельные показывает?
*Входные данные там стоят сразу в коде, их не надо вводить с клавиатуры, вот эта строка:
C++
1
char str[] ="Dostoyevsky's father Mikhail and grandfather, Andrey, were born in modern central Ukraine. Mikhail was a doctor and a devout Christian, who practised at the Mariinsky Hospital for the Poor in Moscow.";
1
XaD
0 / 0 / 0
Регистрация: 19.05.2009
Сообщений: 15
11.11.2011, 23:18  [ТС] #12
запускаю появляется вот это окно и при нажатиии на любую клавишу окно закрывается
0
talis
793 / 545 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
11.11.2011, 23:23 #13
XaD, так это и есть слова после запятой-пробела.
1
XaD
0 / 0 / 0
Регистрация: 19.05.2009
Сообщений: 15
11.11.2011, 23:25  [ТС] #14
АА спасибо большое во я дурак не догнал по началу) Спасибо еще раз большое Вам!!!
0
XaD
0 / 0 / 0
Регистрация: 19.05.2009
Сообщений: 15
22.11.2011, 19:09  [ТС] #15
А как модифицировать программку чтобы осуществлять ввод с клавиатуры?
0
22.11.2011, 19:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2011, 19:09
Привет! Вот еще темы с решениями:

Есть файл. В файле написаны слова. Найти и вывести на экран слова, в которых гласная и согласная буквы чередуются
Есть файл В файле написаны слова Найти и вывести на экран слова, в которых...

Распечатать все буквы, непосредственно перед которыми находится буква С
Дан массив символов S1,...,Sn. Распечатать все буквы, непосредственно перед...

Удалить из списка элементы перед которыми находится элемент со значением 55
Создать линейный однонаправленный список из вещественных чисел.удалить из...

Дана строка символов, состоящая из произвольного текста, слова раз-делены пробелами. Вывести на экран порядковый номер слова, накрывающего k позицию
Помогите с вот такой вот задачкой: Дана строка символов, состоящая из...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru