1 / 1 / 0
Регистрация: 04.02.2020
Сообщений: 8
1

Длина каждого слова. Количество цифр в слове. Количество гласных прописных букв в слове

04.02.2020, 20:53. Показов 1836. Ответов 8

Срочно нужна помощь начинающему програмисту!!! Си

Ввести текстовую строку с помощью функции gets, слова в строке отделяются пробелами
В каждом слове определить:
1.Длину слова
2.Количество цифр
3. Количество гласных прописных букв
Результат вывести в виде:


Input text:
MAma2001 Papa1234056789
Text: MAma2001 Papa1234056789
__________________________________________________ ________________
slovo len_slova kol_cifr kol_glas_bukv
__________________________________________________ ________________
MAma200 8 4 1
Papa1234056789 14 10 2
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.02.2020, 20:53
Ответы с готовыми решениями:

Определить количество гласных букв в слове или предложении
Программа не правильно считает количество гласных , всегда показывает на одну букву больше . Что в...

Подсчитать количество гласных букв в каждом слове предложения (через библиотечную функцию)
решение через библиотечную функцию Ввести с клавиатуры предложение. Подсчитать количество...

Заменить все слова в исходном файле на количество букв (целое число) в слове
Заменить все слова в исходном файле на количество букв (целое число) в сло- ве. Результат записать...

Подсчитать количество букв в третьем слове и добавить пробел после каждой буквы третьего слова
Дано задание. "Подсчитать количество букв в третьем слове и добавить пробел после каждой буквы...

8
Модератор
2281 / 1615 / 879
Регистрация: 16.10.2013
Сообщений: 4,777
Записей в блоге: 12
05.02.2020, 13:00 2
Лучший ответ Сообщение было отмечено Big_Smoke9000 как решение

Решение

ограничения:
длина вводимой строки 100 символов;
не делал обработку знаков препинания и прочих символов, они буду считаться частью слов.

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 <stdio.h>
#include <string.h>
int main(){
    int digits = 0, glasn = 0, len = 0;
    char s[100];
    char delimeter = ' ';
    printf("Input text:\n");
    gets(s);
    printf("Text: %s\n", s);
    printf("word\tlength\tdigits\tglasn\n");
    for(size_t i = 0; i < strlen(s); i++) {
        if(s[i] != delimeter) {
            printf("%c", s[i]);
            len++;
            if(s[i] >= '0' && s[i] <= '9') { 
                digits++;
                continue;
            }
            if(s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' || s[i] == 'u') {
                glasn++;
                continue;
            }
        } else {
            if(s[i - 1] == delimeter) { 
                digits = glasn = len = 0;
                continue;
            }
            printf("\t%d\t%d\t%d\n", len, digits, glasn);
            digits = glasn = len = 0;
        }
    }
    printf("\t%d\t%d\t%d\n", len, digits, glasn);
    return 0;
}
1
1187 / 687 / 329
Регистрация: 22.02.2018
Сообщений: 1,969
Записей в блоге: 2
05.02.2020, 13:56 3
long399, А еще есть такие макросы, как isdigit, isalpha, isspace...

Добавлено через 4 минуты
Цитата Сообщение от long399 Посмотреть сообщение
if(s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' || s[i] == 'u') {
                glasn++;
                continue;
Про 'y' забыли

Добавлено через 2 минуты
Можно здесь посмотреть про функции для обработки символов и строк - http://www.c-cpp.ru/content/isdigit
1
Модератор
2281 / 1615 / 879
Регистрация: 16.10.2013
Сообщений: 4,777
Записей в блоге: 12
06.02.2020, 04:57 4
Цитата Сообщение от TrollHammer Посмотреть сообщение
Про 'y' забыли
она же вроде согласной еще выступает, например, в слове yellow. По идее, аналог нашей буквы Й. Но есть слова где она и как гласная, а-ля family. Посему я и засомневался относить ли ее в эту группу или нет. А гуглить не стал, уж ТС если что подправит
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
11710 / 7217 / 1710
Регистрация: 25.07.2009
Сообщений: 13,218
06.02.2020, 12:39 5
Цитата Сообщение от long399 Посмотреть сообщение
if(s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' || s[i] == 'u')
Цитата Сообщение от Big_Smoke9000 Посмотреть сообщение
3. Количество гласных прописных букв
long399, неувязочка... Прописные буквы - это такие, для которых isupper() вернёт TRUE
C
1
#define upper_vowel(c) ( (c) && strchr("AEIOUY", (c)) )
0
Модератор
2281 / 1615 / 879
Регистрация: 16.10.2013
Сообщений: 4,777
Записей в блоге: 12
06.02.2020, 12:50 6
easybudda, если так, значит меня пример ТС ввел в заблуждение...

Цитата Сообщение от Big_Smoke9000 Посмотреть сообщение
Input text:
MAma2001 Papa1234056789
Text: MAma2001 Papa1234056789
__________________________________________________ ________________
slovo len_slova kol_cifr kol_glas_bukv
__________________________________________________ ________________
MAma200 8 4 1
Papa1234056789 14 10 2
судя по этому примеру, имелись в виду маленькие буквы (строчные, кажется они называются).
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
11710 / 7217 / 1710
Регистрация: 25.07.2009
Сообщений: 13,218
06.02.2020, 13:10 7
Единственное, что можно сказать точно
Цитата Сообщение от long399 Посмотреть сообщение
судя по этому примеру
это то, что
Цитата Сообщение от Big_Smoke9000 Посмотреть сообщение
начинающему програмисту
вообще по сараю, как там что должно считаться. Он задание запостил, как смог, а дальше сами... Но! Так, как строчные буквы упоминаются аж два раза, а в примере есть ошибка, не относящаяся к прописным/строчным буквам, я бы считал, что задание он честно скопипастил (возможно и не вникая в "мелочи"), а пример сам придумал и написал.
Правда, задание в любом случае сомнительное:
Цитата Сообщение от Big_Smoke9000 Посмотреть сообщение
Ввести текстовую строку с помощью функции gets
Использование этой функции и раньше-то не приветствовалось, а из ANSI C 11 она просто исключена...
2
21 / 17 / 4
Регистрация: 31.05.2016
Сообщений: 67
06.02.2020, 14:12 8
Цитата Сообщение от Big_Smoke9000 Посмотреть сообщение
MAma200 8 4 1
Почему 4?
0
Модератор
2281 / 1615 / 879
Регистрация: 16.10.2013
Сообщений: 4,777
Записей в блоге: 12
07.02.2020, 05:19 9
Цитата Сообщение от Lady C Посмотреть сообщение
Почему 4?
Цитата Сообщение от Big_Smoke9000 Посмотреть сообщение
Input text:
MAma2001 Papa1234056789
Text: MAma2001 Papa1234056789
__________________________________________________ ________________
slovo len_slova kol_cifr kol_glas_bukv
__________________________________________________ ________________
MAma200 8 4 1
Papa1234056789 14 10 2
переписывал неверно, торопился видать
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.02.2020, 05:19
Помогаю со студенческими работами здесь

Дана строка. Подсчитать количество содержащихся в*ней цифр, прописных букв и строчных букв (на С)
Помогите решить задачу. Есть вот такой код, но он считает только строчные буквы. #include...

Посчитать количество букв в каждом слове
Мне нужно ввести какой-нибудь текст(просто буквы с пробелами), напротив каждого слова указать,...

Подсчитать количество букв k в последнем слове
Добрый вечер! В С я не бум-бум. Задание следующее:Подсчитать количество букв k в последнем слове....

Подсчитать количество букв о, м, и к в этом слове
Не могу понять, почему не работает. Помогите. Вроде легко, а все равно не робит #include...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru