Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2016, 23:52   #1
Maik512
 
Регистрация: 18.12.2016
Сообщений: 5
По умолчанию [Си] В массиве строк найти все слова, содержащие заданное количество гласных букв

Здравствуйте. Подскажите,пожалуйста, как доделать код. Мне нужно в массиве строк найти все слова, содержащие заданное количество гласных букв, у меня получилось только посчитать количество гласных в строках. Подскажите, как строку разделить на слова и произвести в них поиск гласных без использования указателей, пожалуйста?

Код:
#include<stdio.h>
#include<conio.h>
int main()
{
int i,j,y,c=0;
char str[4][30];
const char glas[]="AEIOUYaeiouy";
clrscr();
   printf("\nZapolnite stroki:\n");
   for(i=0; i<4; i++)
   fgets(str[i],30,stdin);
   printf("\n vi vveli\n");
   for(i=0; i<4; i++)
   printf("\nstroka %d\n %s",i+1,str[i]);
   for(y=0;y<=4;y++)
   {
      for(i=0;str[y][i]!='\0';i++)
      {
       for(j=0;glas[j]!='\0';j++)
     {
        if(str[y][i]==glas[j])
        c++;
      }
      }
   }
printf("%d",c);
getch();
return 0;
}

Последний раз редактировалось Arigato; 19.12.2016 в 01:22.
Maik512 вне форума Ответить с цитированием
Старый 19.12.2016, 00:39   #2
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Вообще то строку делят на слова пробелы:
Код:
str[y][i]==' '
Когда среагировало на пробел, тогда (в этот момент) надо сказать равно ли кол-во чётных букв заданному. Если равно, тогда предыдущее слово печатаем на экран (слово, которое до пробела, должно быть сохранено где-то)... Крутись вокруг этого:

3.jpg

И совет, сделай сначала только для одной строки (а не 4-м).
ura_111 вне форума Ответить с цитированием
Старый 20.12.2016, 13:20   #3
Maik512
 
Регистрация: 18.12.2016
Сообщений: 5
По умолчанию

Пробовал для одной строки, но что-то с циклами сделал не так. Подскажите,как исправить.
Код:
#include <stdio.h>
#include <conio.h>
#define M 40
int main()
{
    int i,j,y,n=3;
    char c,str[M];
    const char glas[]="AEIOUYaeiouy";
    clrscr();
    printf("Vvedite liniu:\n");
	gets(str);
	for(i=1;i<M;i++)
	{
	      while(str[i]!=' '&& str[i+1]!='\0')
	      {
		 for(j=0;j<13;j++)
		 if(str[i]==glas[j])
		 {
		 y++;
		 if(n==y)
		 printf("%s",str[i]);
		 }
	      }
	}
getch();
return 0;
}
Maik512 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны предложения. Вывести слова, содержащие максимальное количество различных букв. ggjgj Общие вопросы C/C++ 0 03.12.2016 19:02
С++ Найти и вывести все слова, у которых число гласных букв превышает число согласных MoniX Помощь студентам 1 21.05.2016 18:14
Найти слова, содержащие соответственно наибольшее и наименьшее количество заглавных латинских букв, и поменять их местами smilegirl73 Паскаль, Turbo Pascal, PascalABC.NET 0 19.05.2013 12:33
[Pascal] Найти слова, содержащие не менее трех букв из первого и указать после них найденные буквы. suigintou Помощь студентам 1 23.12.2012 17:01
Найти и вывести все слова,у котоpых число гласных букв пpевышает число согласных. Briz Помощь студентам 2 11.05.2008 00:56