Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
Imperial_Legion
0 / 0 / 0
Регистрация: 15.06.2015
Сообщений: 2
1

Текст состоит из слов, разделенных пробелами. Подсчитать количество слов, начинающихся с буквы К

15.06.2015, 22:18. Просмотров 1290. Ответов 4
Метки нет (Все метки)

Дан текст произвольной длины, оканчивающий точкой. Текст состоит из слов, разделенных проблемами. Подсчитать:
Количество слов, начинающихся с буквы К.
Программу я написал, но осталось сделать цикл с параметром. Суть его такова:
Пока не будет принята точка, он все обрабатывает. Потом, как принялась буква К - в переменную типа boolean записывает 1.
И если после этого будет принят пробел, он прибавляет единицу в счетчике.

Наработки по коду:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <conio.h>
 
void main()
{
            clrscr();
            int num=0;
            char temp, prev;
            
            do{
                 temp = getchar();
                 prev = temp;
                 if(prev == 'k'){
                        temp = getchar();
                        if(prev == 'k" && temp == ' ' || prev == 'K' && remp == ' ")
                        num++;
                        }
                  }while(temp !='.');
 
                   printf("Words with 'K' = %d", num);
                   printf("\nPress any key!");
                   getch();
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2015, 22:18
Ответы с готовыми решениями:

Подсчитать количество слов, начинающихся на 'A'
Доброго времени суток. Подскажите пожалуйста решение такой проблемы. Дана...

Программа, которая подсчитывает количество слов начинающихся с заданной буквы
Помогите новичку.Заранее спасибо! Есть программа, которая подсчитывает...

Найти количество слов, начинающихся с буквы b в строке английского текста
Дана строка, содержащая английский текст. Найти количество слов, начинающихся с...

Дан текст. Определить количество слов начинающихся и заканчивающихся на одну и ту же букву
Да текст. определить количество слов начинающихся и заканчивающихся на одну и...

Подсчитать количество слов, начинающихся на большую букву и содержащих хотя бы один арифметический знак
Ввожу в строку слова, разделенные символами-разделителями «_.,;:\n\t!?»....

4
eledev
55 / 55 / 39
Регистрация: 19.03.2015
Сообщений: 167
16.06.2015, 02:57 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <conio.h>
 
int main (void)
{
    char ch;
    char prev = ' ';
    int count = 0;
    do{
        ch = getchar();
        if((ch == 'k' || ch == 'K') && (prev == ' ' || prev == '\n')){
            count++;
        }
        prev = ch;
    } while(ch != '.');
 
    printf("Words with 'K' = %d", count);
    printf("\nPress any key!");
    getch();
    return 0;
}
0
Imperial_Legion
0 / 0 / 0
Регистрация: 15.06.2015
Сообщений: 2
16.06.2015, 21:04  [ТС] 3
Огромнейшее вам спасибо!
0
степка98
1 / 1 / 0
Регистрация: 27.07.2017
Сообщений: 14
Завершенные тесты: 1
27.07.2017, 21:48 4
Здравствуйте, а этот код можно на С++ сделать, я пробовал и не получается.
[CPP]
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
#include <iostream>
#include <conio.h>
#include <cstdio>
 
using std::ostream;
using std::cout;
using std::cin;
using std::endl;
int main(void)
{
    char ch;
    char prev = ' ';
    int count = 0;
    do {
        ch = getchar();
        if ((ch == 'k' || ch == 'K') && (prev == ' ' || prev == '\n')) {
            count++;
        }
        prev = ch;
    } while (ch != '.');
 
    cout<<("Words with 'K' = %d", count)<<endl;
    cout<<("\nPress any key!")<<endl;
    cin.get();
    return 0;
}
0
easybudda
Модератор
Эксперт CЭксперт С++
10208 / 6107 / 1536
Регистрация: 25.07.2009
Сообщений: 11,607
28.07.2017, 00:52 5
Цитата Сообщение от степка98 Посмотреть сообщение
а этот код можно на С++ сделать
C++ в другом разделе, в следующий раз лучше там спрашивайте.
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
#include <iostream>
#include <cctype>
 
const int BUF_SIZE = 256;
const char START_LETTER = 'K';
 
int main() {
    char buf[BUF_SIZE];
    
    while ( std::cout << "String: " && std::cin.getline(buf, BUF_SIZE) && *buf ) {
        int count = 0;
        bool inword = false;
        
        for ( char * p = buf; *p; ++p ) {
            switch ( *p ) {
                case ' ' :
                case '\t':
                case '.' :
                case '!' :
                case '?' :
                case ',' :
                    inword = false;
                    break;
                default :
                    count += ( ! inword && toupper(*p) == START_LETTER );
                    inword = true;
                    break;
            }
        }
        
        std::cout << count << " words starts with letter " << START_LETTER << std::endl;
    }
    
    return 0;
}
1
28.07.2017, 00:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.07.2017, 00:52

Подсчитать количество слов, которые содержат буквы a,e,f
Здравствуйте, помогите с проблемой. Дан любой текст,который считывается из...

Подсчитать количество слов, в которых встречаются гласные русские буквы
Будьте добры, помогите написать программу. Задача: 5. Подсчитать количество...

Сохранить текст в массиве и подсчитать количество слов в нем
помогите пожалуйста) сохранить текст в массиве и подсчитать количество слов в...


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

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

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