Напечатать в алфавитном порядке все звонкие согласные, которые входят хотя бы в одно слово - C (СИ)
Формулировка задачи:
Дан текст на русском. Напечатать в алфавитном порядке все звонкие согласные, которые входят хотя бы в одно слово.
uses crt;
type let='a'...'я';
var sogl;set of let;
text:set of char;
c:char;
s:string;
i:byte;
begin
writeln ('введите текст заканчивающийся точкой');
readln (s);
if s [length (s)]<>'.'then s:=s+'.';
text:=[];
sogl := ['б','в','г','д','ж','з','л','м','н','р'];
repeat
if s[i] in sogl then text:=text +[s[i]];
i=i+1;
until s[i]='.';
for c:='a' to 'я' do if c in text then write (s);
readln;
end.Решение задачи: «Напечатать в алфавитном порядке все звонкие согласные, которые входят хотя бы в одно слово»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
int main()
{
static const char CChars[] = "бвгджзлмнр";
static const size_t CCharsSize = sizeof(CChars) / sizeof(*CChars);
char text[256] = {'\0'};
size_t i;
fgets(text, sizeof(text) - 1, stdin);
for (i = 0; i < CCharsSize; ++i)
{
if (strchr(text, CChars[i]))
{
printf("%c", CChars[i]);
}
}
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Объявлены две константы: CChars и CCharsSize. CChars содержит набор звонких согласных букв, а CCharsSize - размер этого набора.
- Объявлена переменная text, в которую программа будет считывать текст до тех пор, пока не встретит символ новой строки.
- После считывания текста программа перебирает каждый символ из набора CChars.
- Если в тексте есть символ, соответствующий текущему из набора CChars, то этот символ выводится на экран.
- Программа завершается, когда все символы из набора CChars будут проверены.
- Ввод данных осуществляется с клавиатуры.