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

Подсчитать количество слов, которые содержат не менее двух букв "с"

10.04.2017, 17:02. Просмотров 827. Ответов 3
Метки нет (Все метки)

Подскажите что не так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
case '6': {
        system("cls");
        char st3[50];
        int i, l=0, k=0;
        puts("Input string");
        fgets(st3, 100, stdin);
        for (i = 1; i < 100; i++) {
            if ((st3[i] != ' ') && (st3[i] == 'c')) {
                k = k + 1;
                if (k == 2) {
                    l = l + 1;
                }
            }
            }
            printf("Слов содержащих больше двух букв 'с': %d ", l);
            system("pause");
            goto m1;
    }
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2017, 17:02
Ответы с готовыми решениями:

Найти количество слов в строке, которые содержат хотя бы одну букву "А"
ана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним...

Дана строка разделенная пропусками. Подсчитать количество слов которые имеют не менее двух символов 'c'
Помогите решить

Вывод слов, которые содержат более одной буквы "а"
Собственно дана строка символов, признак конца строки '\n'. Строка состоит из слов. Нужно вывести...

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

Подсчитать количество букв "D" в каждом четном слове
Идея вроде ясна : нужно ввести массив , в него занести строку из слов , каким-то образом разделить...

3
CoderHuligan
813 / 539 / 201
Регистрация: 30.06.2015
Сообщений: 2,997
Записей в блоге: 13
10.04.2017, 18:02 2
Лучший ответ Сообщение было отмечено Katachi как решение

Решение

Цитата Сообщение от Katachi Посмотреть сообщение
Подскажите что не так
Алгоритм неправильный.
Если попростому:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <string.h>
#define N 255
#define DL ",. ?!;"
int main(void)
{
char st3[N];
    int max=0;
    char *p, *ch;
    const char c='c';
    puts("Input string");
    fgets(st3, N, stdin);
    for(p=strtok(st3,DL);p;p=strtok(NULL,DL))
    {
        if((ch=strchr(p, c))!=NULL && strchr(ch+1, c)!=NULL)
            max++;
    }
            printf("Слов содержащих больше двух букв 'с': %d ", max);
return 0;
}
1
Katachi
0 / 0 / 1
Регистрация: 04.12.2016
Сообщений: 20
10.04.2017, 21:20  [ТС] 3
Большое спасибо. Но если можете подскажите как сюда добавить еще заглавные буквы и если не сложно обьяснить что делает for (p = strtok(st3, DL); p; p = strtok(NULL, DL)). Не совсем понял
0
CoderHuligan
813 / 539 / 201
Регистрация: 30.06.2015
Сообщений: 2,997
Записей в блоге: 13
11.04.2017, 12:01 4
Цитата Сообщение от Katachi Посмотреть сообщение
Но если можете подскажите как сюда добавить еще заглавные буквы
Вместе с заглавными:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <string.h>
#define N 255
#define DL ",. ?!;"
int main(void)
{
char st3[N];
    int max=0;
    char *p, *ch;
    const char *c="cC";
    puts("Input string");
    fgets(st3, N, stdin);
    for(p=strtok(st3,DL);p;p=strtok(NULL,DL))
    {
        if((ch=strpbrk(p, c))!=NULL && strpbrk(ch+1, c)!=NULL)
            max++;
    }
            printf("Слов содержащих больше двух букв 'с': %d ", max);
return 0;
}
Цитата Сообщение от Katachi Посмотреть сообщение
обьяснить что делает for (p = strtok(st3, DL); p; p = strtok(NULL, DL)). Не совсем понял
Функция strtok при первом вызове возвращает указатель на первый найденный токен - в данном случае слово. Затем, при повторных вызовах в цикле она возвращает последовательно все следующие токены. Признаком выхода из цикла является нулевой указатель р. Но она портит исходную строку, оставляя на месте символов-разделителей нулевой терминатор. Поэтому если нужна целая строка её нужно предварительно скопировать.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.04.2017, 12:01

Строка: Подсчитать количество букв "а" в последнем слове заданной строки...
Дан текст. а) Подсчитать количество слов в этой строке. б) Подсчитать количество букв &quot;а&quot; в...

Подсчитать общее количество вхождений в строку символов "А", "a", "B" и "b"
#include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; main() { int i; int k; ...

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


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

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

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