Тема: роботи з рядками в С
а) підраховує кількість слів у тексті, які починаються з голосної літери; б) виводить на екран
всі слова, що мають непарну кількість приголосних літер.
Вот мій код но чомусь він не працює
#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;    
                    
    }
        
}