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

Подсчитать количество согласных букв в строке

08.12.2015, 18:22. Просмотров 932. Ответов 6
Метки нет (Все метки)

Ввести с клавиатуры строку текста. Подсчитать количество согласных букв в строке.
Помогите...
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2015, 18:22
Ответы с готовыми решениями:

Подсчитать количество гласных и согласных букв в строке без учета регистра
помогите написать программу на СИ. Пользователь вводит с клавиатуры строку S....

Подсчитать количество слов, содержащих заданное количество согласных букв
Построить Trie-дерево. Подсчитать количество слов, содержащих заданное ...

Подсчитать количество гласных и количество согласных букв
Дана строка символов. Подсчитать количество гласных и количество согласных букв

Определить количество гласных и согласных букв в строке
Вобщем, задание было такое...Дана строка символов. Определить количество слов в...

Найти слово в строке, в котором минимальное количество согласных букв
помогите с программой... мое написанное: int glas;...

6
Геомеханик
790 / 596 / 938
Регистрация: 26.06.2015
Сообщений: 1,409
08.12.2015, 22:16 2
Лучший ответ Сообщение было отмечено Cheat_Engine как решение

Решение

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
#include <stdio.h>
#include <ctype.h>
#include <string.h>
 
int count_nv(const char* s){
    int c, n = 0;
    const char vs[] = "AEIOYU";
 
    while(*s){
        if(isalpha(*s)){
            c = *s;
            if(islower(c))
                c = toupper(c);
 
            if(strchr(vs, c) == NULL)
                ++n;
        }
        ++s;
    }
    return n;
}
 
int main(void){
    char s[64] = "ABCDEF(O)W";
/*
    printf("Enter str: ");
    fgets(s, sizeof(s), stdin);
*/
    printf("count: %d\n", count_nv(s));
    return 0;
}
1
Алкаш
0 / 0 / 0
Регистрация: 14.12.2015
Сообщений: 20
15.12.2015, 17:57 3
Цитата Сообщение от Геомеханик Посмотреть сообщение
if(isalpha(*s))
А что значит "isalpha"?
0
awalio
33 / 33 / 36
Регистрация: 22.05.2015
Сообщений: 146
Завершенные тесты: 2
23.12.2015, 17:14 4
Алкаш, функция проверки, является ли char буквой.
0
easybudda
Модератор
Эксперт CЭксперт С++
10147 / 6054 / 1521
Регистрация: 25.07.2009
Сообщений: 11,476
27.12.2015, 06:41 5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <string.h>
 
#define CONSONANTS "BbCcDdFfGgHhJjKkLlMmNnPpQqRrSsTtVvWwXxZz"
 
int consonants_count(const char * s) {
    return ( s = strpbrk(s, CONSONANTS) ) ? 1 + consonants_count(s + 1) : 0;
}
 
int main(void) {
    char buf[BUFSIZ];
    
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' )
        printf("%d consonant letter(s).\n", consonants_count(buf));
    
    return 0;
}
2
Khan_
0 / 0 / 0
Регистрация: 15.06.2018
Сообщений: 1
15.06.2018, 17:31 6
easybudda, можно тоже самое, только не просто в строке, а в каждом предложении?т.е. если встречается . ! ? то нужно обнулить счётчик и по новой,но как реализовать - не знаю(

Добавлено через 8 минут
я в общем-то пытался как-то чего-то добавить,но не корректно вышло
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
 #include "stdafx.h"
#include <stdio.h>
#include <string.h>
 
#define SOGLASNYE "BbCcDdFfGgHhJjKkLlMmNnPpQqRrSsTtVvWwXxZz"
#define ZNAKIPREP ".!?"
 
    int sogl(const char * s) 
    {
        return (s = strpbrk(s, SOGLASNYE)) ? 1 + sogl(s + 1) : 0;//условная операция (?:), если истинно выражение то 1, иначе 0
    }
    int znaki(const char * z)
    {
        return (z = strpbrk(z, ZNAKIPREP)) ? 1 + znaki(z + 1) : 0;
    }
 
    int main(void) 
    {
        char buf[BUFSIZ];//буферизация для записи в поток данных
 
        while (printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n')
        {
            printf("%d kolichestvo soglasnyh.\n", sogl(buf));
            printf("%d znaki prepinaniya \n", znaki(buf));
            if (znaki(buf) >= 1)
            {
                int so = sogl(buf);
                so = 0;
                do so++;
                while (fgets(buf, BUFSIZ, stdin) && *buf != '\n');
                printf("%d kolichestvo soglasnyh v sled. predl. \n", so);
            }
        }
    }
0
SlavaSokolov
170 / 134 / 105
Регистрация: 14.04.2016
Сообщений: 735
15.06.2018, 18:38 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
46
47
48
49
50
51
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
#define CONSTANTS "BbCcDdFfGgHhJjKkLlMmNnPpQqRrSsTtVvWwXxZz"
#define SIZE 512
 
int counter(const char* str, int i)
{
    int count = 0;
    //printf("%c\n", str[i]);
    while (str[i] != '!' && str[i] != '?' && str[i] != '.' && str[i] != '\0')
    {
        for (int n = 0; CONSTANTS[n] != '\0'; n++)
            if (str[i] == CONSTANTS[n])
            {
                count++;
                break;
            }
        i++;
    }
    return count;
}
 
int main(void) {
 
    char str[SIZE];
    int iterator = 0;
 
    for (int c = 0; (c = getchar()) != '\n';)
        str[iterator++] = c;
    str[iterator] = '\0';
 
    printf("%s\n", str);
 
    iterator = 0;
 
    for (int i = 0;; i++)
    {
        if (str[i] == '!' || str[i] == '?' || str[i] == '.' || str[i] == '\0')
        {
            printf("%d\n", counter(str, iterator));
            iterator = i + 1;
        }
        if (str[i] == '\0' || str[i + 1] == '\0')
            break;
    }
 
    system("pause");
 
    return 0;
}
0
15.06.2018, 18:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2018, 18:38

Подсчитать количество слов, являющихся регулярными цепочками и в которых имеется чередование гласных и согласных букв
На языке Си ЗАДАНИЕ: Дана последовательность слов, которую необходимо...

Подсчитать во введенной строке количество букв ‘Л’ и количество букв ‘И’
&quot;Подсчитать во введенной строке количество букв ‘Л’ и количество букв ‘И’.&quot;...

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


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

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

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