Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/34: Рейтинг темы: голосов - 34, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 20
1

Нужно написать функцию, которая принимает строку, а возвращает количество гласных, согласных и символов-разделителей

21.11.2012, 19:31. Показов 6601. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите,пожалуйста, хотя бы основную идею работы с функциями и указателями.
Нужно написать функцию, которая принимает строку, а возвращает количество гласных, согласных и символов-разделителей.Объявить указатель на полученную функцию и вызвать её с помощью указателя.
Строку нужно делать через массив?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.11.2012, 19:31
Ответы с готовыми решениями:

Написать функцию, которая принимает строку и возвращает максимальное количество одинаковых символов, идущих подряд
Написать функцию, которая принимает строку. В качестве результата возвращает максимальное...

Написать функцию, которая принимает на вход строку и возвращает количество слов в нем
Мне нужно написать функцию, которая принимает на вход строку и возвращает количество слов в нем....

Указатели: написать функцию, которая принимает строку, и возвращает количество слов и число пробелов в ней
Помогите с решением данной задачи.Не могу разобраться в работе с указателями. Написать функцию,...

Написать функцию, которая принимает строку звуков, а возвращает звук
Всем привет! В общем, я хочу разобраться с алгоритмом в такой задаче: в каком-то языке есть только...

1
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
22.11.2012, 10:24 2
Лучший ответ Сообщение было отмечено Polly0819 как решение

Решение

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

C
1
void count_letters(const char *str, int *num_punct, int *num_vowel, int *num_consonant);
Для того, чтобы проверить, является ли символ символом пунктуации, можно воспользоваться функцией ispunct из ctype.h. Для проверки гласных и согласных я предлагаю создать аналогичные функции со следующими прототипами:

C
1
2
3
int isvowel(int c);
 
int isconsonant(int c);
Символ является гласным, если он принадлежит множеству "aeiouAEIOU". Такую принадлежность можно выразить с помощью функции strchr из string.h.

По аналогии можно определить функцию isconsonant, либо воспользоваться свойством, по которому символ является согласным, если это алфавитный символ (можно проверить с помощью функции isalpha из ctype.h), который не является гласным.

Используя эти функции, в теле функции count_letters нужно пробегать по всем символам строки, увеличивая соответствующий счетчик, если одна из функций ispunct, isvowel, isconsonant вернет истину.

Объявление указателя на функцию count_letters будет выглядеть так:

C
1
void (*ptr_func)(const char *, int *, int *, int *);
Вызов функции по указателю выполняется точно так же, как и обычный вызов функции.

Цитата Сообщение от Polly0819 Посмотреть сообщение
Строку нужно делать через массив?
Угу.
1
22.11.2012, 10:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2012, 10:24
Помогаю со студенческими работами здесь

Создать функцию, которая в принимает строку и возвращает новую из символов, которые встречаются только один раз.
Привет всем, помогите найти правильное решение: cоздать функцию, которая в качестве параметра...

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

Написать функцию atoi(), которая принимает параметр - строку цифр и возвращает соответствующее ей целое
Это оказалось мне не по-силам, поэтому прошу помощи,господа:) Напишите функцию atoi(), которая...

Написать функцию, которая принимает количество часов, и возвращает стоимость стоянки
На некоторой автостоянке минимальная плата за размещение автомобиля 2Ls. В случае если машина...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru