Строки: вывести на экран слова, начинающиеся с гласных букв - C (СИ)
Формулировка задачи:
Здравствуйте, помогите мне написать программу, которая при вводе с клавиатуры предложения на английском языке выводила на экран слова, начинающиеся с гласных букв. Я видел подобные программы на этом форме, но мне необходимо написать на Си.
Решение задачи: «Строки: вывести на экран слова, начинающиеся с гласных букв»
textual
Листинг программы
char A[400], A1[20][20];
int i, j, k, c;
printf("vvedite stroku \n");
gets(A);
k = 0;
c = 0;
for (i = 0; i<strlen(A); i++)
{
if (A[i] != ' ')
{
A1[k][c] = A[i];
c++;
}
else
{
A1[k][c] = '\0';
k++;
c = 0;
}
}
A1[k][c] = '\0';
k++;
for (i = 0; i<k; i++)
{
if (A1[i][0] == 'a' || A1[i][0] == 'e' и так далее)
printf("%s ", A1[i]);
}
Объяснение кода листинга программы
В этом коде:
- Переменные:
A- строка, в которую вводится текст.A1- массив строк, в который разбивается введенная строка.i,j,k,c- переменные для работы с циклами.
- Описание алгоритма:
- Пользователю предлагается ввести строку.
- Введенная строка сохраняется в переменной
A. - Переменная
kинициализируется нулем, а переменнаяc- единицей. - Происходит цикл по всем символам строки
A. - Если текущий символ не пробел, он добавляется в соответствующую строку массива
A1и увеличивается значение переменнойc. - Если текущий символ - пробел, он заменяется на нулевой символ в соответствующей строке массива
A1, увеличивается значение переменнойk, а значение переменнойcсбрасывается до нуля. - После прохода по всем символам строки
A, последняя строка массиваA1завершается нулевым символом. - Увеличивается значение переменной
k. - Происходит цикл по всем строкам массива
A1. - Если первая буква текущей строки - гласная, она выводится на экран с помощью функции
printf.
- Вывод:
В результате работы программы на экран будут выведены все строки массива
A1, начинающиеся с гласных букв.