В строке,содержащей буквы латинского алфавита, определить гласные,встречающиеся только один раз - C (СИ)
Формулировка задачи:
Всем доброго времени суток!Я буду признателен,если вы мне поможете с решением одной задачи.Я уже долго ломаю голову над ней.
Вот собственно и она:
В строке,содержащей буквы латинского алфавита, определить гласные,встречающиеся только один раз.
Заранее благодарен!
Решение задачи: «В строке,содержащей буквы латинского алфавита, определить гласные,встречающиеся только один раз»
textual
Листинг программы
#include <stdio.h> #include <string.h> char str[]="heIjbskgldjsukjhjdkjhwwe"; struct { char s; int n; } wov[6] = { {'A', 0}, {'E', 0}, {'I', 0}, {'O', 0}, {'U', 0}, {'Y', 0} }; int main() { int i, j; for(i=0; str[i]; i++) for(j=0; j<6; j++) if(str[i]==wov[j].s || str[i]-('a'-'A')==wov[j].s) wov[j].n++; for(j=0; str[j]; j++) if(wov[j].n == 1) printf("%c ", wov[j].s); printf("\n"); return 0; }
Объяснение кода листинга программы
Выводимый на экран результат работы программы будет содержать только те гласные буквы из строки, которые встречаются в ней только один раз.
- Объявлена строка str[], содержащая тестовую строку
heIjbskgldjsukjhjdkjhwwe
. - Объявлен массив wov[], содержащий информацию о гласных буквах. Каждый элемент массива содержит пару значений: гласную букву и счётчик её вхождений в строку. Значения счётчиков инициализированы нулями.
- В функции main() объявлены две переменные i и j, которые будут использоваться в циклах.
- Происходит два прохода по символам строки: — В первом цикле проверяется каждый символ строки на соответствие гласным буквам в массиве wov[]. Если символ является гласной буквой или его коду в верхнем регистре соответствует код гласной буквы в массиве wov[], то увеличивается счётчик этой гласной буквы. — Во втором цикле проверяется каждый символ строки. Если счётчик гласной буквы равен единице, то эта гласная буква выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д