Тема: роботи з рядками в С
а) підраховує кількість слів у тексті, які починаються з голосної літери; б) виводить на екран
всі слова, що мають непарну кількість приголосних літер.
Вот мій код но чомусь він не працює
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
int main ()
{
char str[200], glas[] = {'а', 'о', 'и', 'е', 'ю', 'я', 'у', 'є'};
char soglas[] = {'й', 'ц', 'к', 'н', 'г', 'ш', 'щ', 'з', 'х', 'ъ', 'ф', 'в', 'п', 'р', 'л', 'д', 'ж', 'ч', 'с', 'м', 'т', 'ь', 'б'};
int i, j, a, k, k2, l;
system("chcp 1251 > nul");
gets(str);
for (i=0; i<strlen(str); i++)
{
for (j=0; j<9; j++)
{
if (str[i] == glas[j] && (ispunct(str[i-1]) || isspace(str[i-1]) || i == 0))
{
k++;
for (; !ispunct(str[i]) && !isspace(str[i]) && str[i]!='\n'; i++)
{
printf("%c", str[i]);
}
printf(" ");
break;
}
}
}
printf("\nСлова, які починаються з великої букви - %d шт\n\n", k);
for (i=1; i<strlen(str); i++)
{
if ((str[i] > 'а' && str[i] < 'я') && (ispunct(str[i-1]) || isspace(str[i-1]) || i == 0))
l = i;
for (; !ispunct(str[i]) && !isspace(str[i]) && str[i]!='\n'; i++)
{
for (j=0; j<23; j++)
if (str[i] == soglas[j])
{
k2++;
break;
}
}
if (k2 % 2 != 0)
{
for (; !ispunct(str[l]) && !isspace(str[l]) && str[l]!='\n'; l++)
{
printf("%c", str[l]);
}
printf(" ");
}
k2 = 0;
}
}