Ввести строку, вывести только слова, заканчивающиеся на гласную букву - C (СИ)
Формулировка задачи:
Ввести строку, вывести только слова, заканчивающиеся на гласную букву.
Алгоритм: for-бегает по строке
1.пропустить все пробелы , пока str[i]==пробел -двигаем индекс
индекс-начало слова
2.пока str[i]!=пробелу или str[i]!=\0
индекс-конец слова
3. пробежали по строке и сравниваем конец слова с гласными
3.1если гласная , то вводим
Решение задачи: «Ввести строку, вывести только слова, заканчивающиеся на гласную букву»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
// char pszCyrillicWowels[] = "АЕЁИОУЫЭЮЯаеёиоуыэюя";
char pszLatinWowels[] = "AEIOUYaeiouy";
bool IsWowel(int iProbe)
{
return strchr(pszLatinWowels,iProbe) != NULL;
}
int main()
{
char pszLine[256];
printf("Enter string: ");
gets(pszLine);
int ii = 0;
int jj = 0;
int iHead = -1;
int iLen = strlen(pszLine) + 1;
for (ii = 0; ii < iLen; ++ii)
{
if (pszLine[ii] && (pszLine[ii] != ' ') && (iHead < 0))
{
iHead = ii;
}
else if ((!pszLine[ii] || (pszLine[ii] == ' ')) && (iHead >= 0))
{
if (IsWowel(pszLine[ii - 1]))
{
for (jj = iHead; jj < ii; ++jj)
{
putchar(pszLine[jj]);
}
putchar('\n');
}
iHead = -1;
}
}
return 0;
}
Объяснение кода листинга программы
В этом коде на языке C вводится строка, и выводятся только слова, заканчивающиеся на гласную букву. Список функций и переменных:
pszCyrillicWowels[]иpszLatinWowels[]- массивы символов, содержащие гласные буквы в кириллице и латинице соответственно.IsWowel(int iProbe)- функция, проверяющая, является ли символiProbeгласной буквой.main()- главная функция программы.pszLine[256]- строка, в которую вводится текст.iHead,iiиjj- вспомогательные переменные для работы со строкой.iLen- длина строки.- Цикл
for- проходится по каждому символу строки. - Условные операторы
ifиelse if- определяют условия вывода слов, заканчивающихся на гласную букву. putchar()- выводит символ на экран.return 0;- завершает работу программы. Вывод программы: Ввод строки:АбвгджзйклмнопрстуфхцчшщъыьэюяаеёиоуыэюяВывод:Абвгджзйклмнопрст