В строке символов определить слова, которые начинаются и заканчиваются на буквы, значения которых вводят из клавиатуры - C (СИ)
Формулировка задачи:
Знаю, что никто из вас не обязан мне помогать, но все же надеюсь, что найдется добрая душа. Нужно написать такую программу на С.
В строке символов определить слова, которые начинаются и заканчиваются на буквы, значения которых вводят из клавиатуры. Напечатать их в перевернутом виде (справа налево). Определить частоту каждой гласной буквы.
Решение задачи: «В строке символов определить слова, которые начинаются и заканчиваются на буквы, значения которых вводят из клавиатуры»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
int main() {
char text[]="okey lets dad fuck osly fox fol ogry opl";
char* t;
char r='o',b='y';
int z;
int a,e,i,o,u,y;
a=0;e=0;i=0;o=0;u=0;y=0;
printf("\nText: %s",text);
printf("\n");
for(z=strlen(text)-1; z>=0; z--) {
if(text[z] == 'a' || text[z] == 'A') {a++;}
else if(text[z] == 'e' || text[z] == 'E') {e++;}
else if(text[z] == 'i' || text[z] == 'I') {i++;}
else if(text[z] == 'o' || text[z] == 'O') {o++;}
else if(text[z] == 'u' || text[z] == 'U') {u++;}
else if(text[z] == 'y' || text[z] == 'Y') {y++;}
}
printf("\nBukva a = %i",a);
printf("\nBukva e = %i",e);
printf("\nBukva i = %i",i);
printf("\nBukva o = %i",o);
printf("\nBukva u = %i",u);
printf("\nBukva y = %i",y);
printf("\n");
t=strtok(text," ");
while (t != NULL) {
if(t[0] == r && t[strlen(t)-1] == b) {
printf("\n\nSlovo: %s",t);
printf("\nSlovo naoborot: ");
for(z=strlen(t)-1; z>=0; z--) {
printf("%c",t[z]);
}
}
t = strtok (NULL, " ");
}
printf("\n");
return 0;
}
Объяснение кода листинга программы
- Объявлены переменные:
- text[] - строка символов для обработки
- t - указатель на первый символ в строке
- r - буква, значение которой вводят из клавиатуры
- b - буква, значение которой вводят из клавиатуры
- z - счётчик для цикла
- a, e, i, o, u, y - счётчики для подсчёта количества букв в строке
- Выполняется цикл по всем символам строки text[]:
- Если текущий символ является 'a' или 'A', то увеличивается счётчик a.
- Если текущий символ является 'e' или 'E', то увеличивается счётчик e.
- Если текущий символ является 'i' или 'I', то увеличивается счётчик i.
- Если текущий символ является 'o' или 'O', то увеличивается счётчик o.
- Если текущий символ является 'u' или 'U', то увеличивается счётчик u.
- Если текущий символ является 'y' или 'Y', то увеличивается счётчик y.
- Выводится количество каждой буквы на экран.
- Выполняется поиск первого слова в строке, начинающегося и заканчивающегося на заданные буквы.
- Это слово выводится на экран, а затем выводится его обратное слово (все символы в обратном порядке).
- Выполняется поиск следующего слова в строке, начинающегося и заканчивающегося на заданные буквы.
- Цикл продолжается, пока не будет найден конец строки или не будет найдено следующее слово, удовлетворяющее условию.
- Выводится новая строка.
- Программа завершается.