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

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

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

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

Добавлено через 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2011, 08:22
Ответы с готовыми решениями:

Вывести слова, перед которыми стоят меньше по длине слова
Большая просьба: помогите решить задачу!!! Она в прикреплённом файле! Заранее СПАСИБО!

В исходной строке а определить и вывести слова,перед которыми стоят меньшие по длине слова
1)В исходной строке а определить и вывести слова,перед которыми стоят меньшие по длине слова....

В исходной строке определить и вывести слова, перед которыми стоят младшие по алфавиту слова
Очень прошу вас ребята , помоч мне . Препод дал мне 2 задачки , которые я вообще не понимаю, пройдя...

В исходной строке a$ определить и вывести слова, перед которыми стоят меньшие по длине слова.
В исходной строке a$ определить и вывести слова, перед которыми стоят меньшие по длине слова.

14
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
794 / 546 / 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
0 / 0 / 0
Регистрация: 19.05.2009
Сообщений: 15
11.11.2011, 18:28  [ТС] 4
Подскажите как написать эту программку с применением функции и флага
0
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
11.11.2011, 18:35 5
XaD, какого флага?
0
0 / 0 / 0
Регистрация: 19.05.2009
Сообщений: 15
11.11.2011, 18:43  [ТС] 6
во флаг регистрации символа записать пробел и запятую
0
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
11.11.2011, 18:47 7
Цитата Сообщение от XaD Посмотреть сообщение
Подскажите как написать эту программку с применением функции и флага
Цитата Сообщение от XaD Посмотреть сообщение
во флаг регистрации символа записать пробел и запятую
Собственно, вот ответ. Что конкретно не ясно?
0
0 / 0 / 0
Регистрация: 19.05.2009
Сообщений: 15
11.11.2011, 18:52  [ТС] 8
не могу записать это в программу, на словах понял примерно как но вот в программу записать тяжко
0
794 / 546 / 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
0 / 0 / 0
Регистрация: 19.05.2009
Сообщений: 15
11.11.2011, 22:48  [ТС] 10
Dar101 запускаю программу хочу при вводе каких нибудь данных программка вылетает безо всяких ошибок. что я неправильно делаю?
0
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
0 / 0 / 0
Регистрация: 19.05.2009
Сообщений: 15
11.11.2011, 23:18  [ТС] 12
запускаю появляется вот это окно и при нажатиии на любую клавишу окно закрывается
0
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
11.11.2011, 23:23 13
XaD, так это и есть слова после запятой-пробела.
1
0 / 0 / 0
Регистрация: 19.05.2009
Сообщений: 15
11.11.2011, 23:25  [ТС] 14
АА спасибо большое во я дурак не догнал по началу) Спасибо еще раз большое Вам!!!
0
0 / 0 / 0
Регистрация: 19.05.2009
Сообщений: 15
22.11.2011, 19:09  [ТС] 15
А как модифицировать программку чтобы осуществлять ввод с клавиатуры?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2011, 19:09

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

В исходной строке а$ определить и вывести слова, перед которыми стоят младшие по алфавиту слова
Задача 1. В исходной строке а$ определить и вывести слова, перед которыми стоят младшие по...

Напечатать слова, перед которыми в строке стоят только меньшие (по алфавиту) слова, а за ними только большие
Помогите пожалуйста решить задачу.Очень плохо понимаю строки. дана строка содержащая от 1 до 10...

Вывести те слова, перед которыми находятся слова с меньшей буквы
Программа должна выводить те слова, перед которыми находятся слова с меньшей буквы. Сам не согу...

Вывести те слова,перед которыми находятся слова с меньшей буквы
Здравствуйте, я не могу понять задание, как к нему &quot;подступиться&quot;, с чего начать, много вопросов к...


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

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

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