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

Составить программу, которая выводит на экран все символы, расположенные после первого символа'':'' - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
reckk
0 / 0 / 0
Регистрация: 20.11.2012
Сообщений: 5
20.11.2012, 22:02     Составить программу, которая выводит на экран все символы, расположенные после первого символа'':'' #1
С клавиатуры вводится строка. Составить программу, которая выводит на экран все символы, расположенные после первого символа'':'', подсчитывает количество предложений, содержащих нечетное количество слов, удаляет из текста слова, которые расположены после запятых.
Помогите пожалуйста!=)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2012, 22:02     Составить программу, которая выводит на экран все символы, расположенные после первого символа'':''
Посмотрите здесь:

Составить программу, которая все элементы, расположенные на главной и побочных диагоналях массива, заменяет значение минимального элемента C++
составить программу, которая выводит на экран в строку числа от 1 до 10 и подсчитывает их сумму? C++
Дана квадратная матрица А порядка n. Составить программу которая все элементы расположенные на главных и побочных диагоналях заменяет на минимальное. C++
C++ Создайте процедуру, которая выводит строку, исключая символы, расположенные на нечетных позициях
Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
20.11.2012, 23:30     Составить программу, которая выводит на экран все символы, расположенные после первого символа'':'' #2
Вы уверенны что вводиться именно строка, а не просто поток символов?

Добавлено через 1 час 7 минут
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
#include <stdio.h>
#define IN 1
#define OUT 0
 
int main( void )
{
    int c, cw, cl, state, blind, rule, space;
    
    cw = cl = space = 0;
    state = rule = blind = OUT;
    while( (c = getchar()) != EOF ) {
    if( c == ',' )
        blind = IN;
    else if( blind == IN && space > 1) {
        space = 0;
        blind = OUT;
    }
    if( blind == IN )
        if( c == ' ' )
        ++space;
    if( space == 2 )
        printf( "%c", c );
    if( blind == OUT && rule == IN )
        printf( "%c", c );
    
    if( c == ' ' || c == '\n' || c == '\t' ) {
        state = OUT;
    }
    else if( state == OUT && (c != ' ' || c != '\n' || c != '\t') ) {
        state = IN;
        ++cw;
    }
    if( (c == '.' || c == '!' || c == '?') && (cw % 2) ) {
        ++cl;
        cw = 0;
    }
    if( c == ':' )
        rule = IN + IN;
    if( rule == IN + IN && c == ' ' )
        rule = IN;
    }
    printf( "Количество предложений с нечётным количеством слов: %d\n", cl );
 
    return 0;
}
reckk
0 / 0 / 0
Регистрация: 20.11.2012
Сообщений: 5
21.11.2012, 00:47  [ТС]     Составить программу, которая выводит на экран все символы, расположенные после первого символа'':'' #3
да, точно строка.

Добавлено через 9 минут
Хмм, я работаю в Dev C++, все компилируется хорошо, но оно не выводит символы.
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
21.11.2012, 13:32     Составить программу, которая выводит на экран все символы, расположенные после первого символа'':'' #4
Если сторока, то нужно немного переделать код, основное отличае заключается в замене макроса EOF на символ конца строки:
C++
1
while( (c = getchar()) != '\n' ) { // 14 строка
Добавлено через 2 минуты
без понятия как предстоит дело с вашим компилятором... попробуйте перед return 0 поставить строчку system("pause");

Добавлено через 12 часов 13 минут
Вот ещё как вариант работы с символьными массивами:
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
/* С клавиатуры вводится строка. Составить программу,
   которая выводит на экран все символы, расположенные
   после первого символа'':'', подсчитывает количество
   предложений, содержащих нечетное количество слов,
   удаляет из текста слова, которые расположены после запятых. */
 
#include <stdio.h>
#define THOUSAND 1000
#define IN 1
#define OUT 0
 
int main( void )
{
    int c, i, j, ix, id, state, sentence, cond, iw, i_sentence;
    char text[THOUSAND]; // максимальная величина вводимых символов - 1000
    char colon[THOUSAND];
    
    state = cond = OUT;
    sentence = i_sentence = 0;
    printf( "Press <Ctrl+d> to finishing...\n\n" );
    for( i = 0; (c = getchar()) != EOF; ) {
    if ( state == IN ) {
        text[i] = c;
        ++i;
    }
    if( c == ':' )
        state = IN;
    
    if( c == '\n' ) {
        text[i] = '\0'; // символ конца файла
        i = 0;
        state = OUT;
        
        /* ****************** */
        // Условие на запятую
        for( j = 0, ix = 0; text[j] != '\0'; ++j ) {
        colon[ix] = text[j];
        ++ix;
        if( text[j] == ',' ) {
            ++j;
            while( text[j] == ' ')
            ++j;
            while( text[j+1] != ' ' && text[j+1] != '\n' && text[j+1] != '\0' )
            ++j;
        }
        if( text[j+1] == '\0' )
            colon[ix] = '\0';
        }
        
        /* ******************* */
        // подсчитаем кол-во предложений содержащих
        // нечётное кол-во слов
        
        // подсчитаем слова
        for( id = iw = 0; colon[id] != '\0'; ++id ) {
        if( colon[id] == '.' || colon[id] == '!' || colon[id] == '?' )
            sentence = OUT;
        else if( sentence == OUT ) {
            sentence = IN;
        }
        if( sentence == IN ) {
            if( colon[id] != ' '
            && (colon[id+1] == ' ' || colon[id+1] == '\t' || colon[id+1] == '\n') )
            ++iw;
        }
        else if ( sentence == OUT ) {
            if( !(iw % 2) )
            ++i_sentence;
            iw = 0;
            
        }
        }
        
        /* ******************* */
        printf( "%s", colon );
        colon[0] = '\0'; // После отображения - ликвидируем массив
    }
    }
    printf( "\nWe have %d odd sentence(s).\n", i_sentence );
    
    return 0;
}
reckk
0 / 0 / 0
Регистрация: 20.11.2012
Сообщений: 5
21.11.2012, 23:07  [ТС]     Составить программу, которая выводит на экран все символы, расположенные после первого символа'':'' #5
Спасибо.
Yandex
Объявления
21.11.2012, 23:07     Составить программу, которая выводит на экран все символы, расположенные после первого символа'':''
Ответ Создать тему
Опции темы

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