Форум программистов, компьютерный форум CyberForum.ru

Вывести первое слово начинающееся на гласную букву - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
S@cred
0 / 0 / 0
Регистрация: 28.05.2012
Сообщений: 3
28.05.2012, 23:08     Вывести первое слово начинающееся на гласную букву #1
Разработать программу:
1. Выводящую список слов во введенном предложении;
2. Выводящую первое слово, начинающееся с гласной буквы во введенном предложении.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 unsigned char M[12];
 char x,y;
 unsigned char str[255];
 cout<<"Vvedite predlogenie"<<endl;
 cin.get(str,255);
 cout<<endl;
  M[0]='a';
  M[1]='A';
  M[2]='e';
  M[3]='E';
  M[4]='y';
  M[5]='Y';
  M[6]='u';
  M[7]='U';
  M[8]='i';
  M[9]='I';
  M[10]='o';
  M[11]='O';
  for(int i=0;str[i]!=0;i++){
   if(str[i]!=' '){
    cout<<str[i];
   }else
   if(str[i+1]!=' ')
    cout<<endl;
  }
  cout<<endl;
  cout<<endl;
  cout<<"              Po zadaniu"<<endl;
  for(int h=0;h<=11;h++)
   if(str[0]==M[h])
    for(i=0;str[i]!=' ';i++)
     cout<<str[i];
   cout<<endl;
  for(i=0;str[i]!=0;i++){
   if(str[i]==' ')
    if(str[i+1]!=' '){
     for(int j=0;j<=11;j++){
      if(M[j]==str[i]){
       cout<<str[i+1];
       for(int b=1;str[i+b+1]!=' ';b++)
        cout<<str[i+b+1];
       cout<<endl;
       }
       }
 }
  }
  cout<<"-----------------------------------------"<<endl;
 }
Первый пункт программа выполняет, а во втором выводит первое слово, начинающееся с гласной буквы только если оно стоит в начале предложения.
Как это исправить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2012, 23:08     Вывести первое слово начинающееся на гласную букву
Посмотрите здесь:

Ввести строку , вывести только слова, заканчивающиеся на гласную букву. C++
Даны два слова.Верно ли,что первое слово начинается на ту же букву,на которую заканчивается второе слово (работа с символами строки) C++
C++ Visual Studio: поочередно выделить каждое слово текста, начинающееся на согласную букву
Вывести первое слово!с++ C++
C++ Вывести слово, начинающееся на заданную букву
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Venzo
 Аватар для Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
28.05.2012, 23:35     Вывести первое слово начинающееся на гласную букву #2
C++
1
if(M[j]==str[i]){
тут str[i] = ' '
исправь на
C++
1
if(M[j]==str[i+1]){
Добавлено через 4 минуты
еще вот тут
C++
1
2
3
  for(i=0;str[i]!=0;i++){
   if(str[i]==' ')
    if(str[i+1]!=' '){
вроде выход за границы массива, если последний символ пробел.
S@cred
0 / 0 / 0
Регистрация: 28.05.2012
Сообщений: 3
29.05.2012, 00:02  [ТС]     Вывести первое слово начинающееся на гласную букву #3
Теперь выводит все слова в предложении, начинающиеся на гласную букву, а надо чтобы вывелось только первое слово в предложении начинающееся на гласную букву.
Venzo
 Аватар для Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
29.05.2012, 00:14     Вывести первое слово начинающееся на гласную букву #4
Цитата Сообщение от S@cred Посмотреть сообщение
Теперь выводит все слова в предложении, начинающиеся на гласную букву, а надо чтобы вывелось только первое слово в предложении начинающееся на гласную букву.
выходи из цикла.
S@cred
0 / 0 / 0
Регистрация: 28.05.2012
Сообщений: 3
29.05.2012, 23:19  [ТС]     Вывести первое слово начинающееся на гласную букву #5
Переделал программу, теперь всё работает правильно.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <ctype.h>
int main() {
 const int MAX=100;
 char text[MAX],ch;
 int index=0;
 cout << "Vvedite predlozhenie: ";
 fgets(text,MAX,stdin);
 for(int i=0;text[i]!=0;i++) {
  if(text[i]!=' ') {
   cout << text[i];
  }
   else
    if(text[i+1]!=' ')
     cout << endl;
 }
 cout << endl;
 cout << "Pervoe slovo, nachinayuscheesya s glasnoy bukvy:\n";
 while (text[index]!='\0') {
  while (text[index]==32)
   index++;
  ch=toupper(text[index]);
   if (ch==65||ch==69||ch==73||ch==79||ch==85||ch==89) {
   while (text[index]!=32&&text[index]!=0) {
    putchar (text[index]);
    index++;
   }
   printf("\n");
   }
   else
    while (text[index]!=32&&text[index]!=0)
     index++;
     if (ch==65||ch==69||ch==73||ch==79||ch==85||ch==89) break;
    }
    getch();
   return 0;
}
Yandex
Объявления
29.05.2012, 23:19     Вывести первое слово начинающееся на гласную букву
Ответ Создать тему
Опции темы

Текущее время: 11:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru