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

Читать слова по одному за раз, пока не будет введена буква q - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Подскажите литературу http://www.cyberforum.ru/cpp-beginners/thread947215.html
Подскажите пожалуйста книгу по математической логике, только что нибудь полегче Кнута "искуство программирования", потому что Кнут очень тяжко идет). И вообще литературу по обработке массивов.
C++ Как генерить монотонно возрастающие числа? Привет! Суть проблемы такова. Надо генерить длинные (long long) числа, чтоб они были всё время разные и плавно возрастающие. Генериться они должны всегда правильно, вне зависимости от того, сколько раз подряд была запущенна программа, сколько раз компьютер был перезагружен и тд... Понятно, что в принципе тут надо завязываться на дату, но тут так же возникает проблема - если этот генератор... http://www.cyberforum.ru/cpp-beginners/thread947132.html
C++ Самая быстрая сортировка
Какая на данный момент самая быстрая сортировка?
Определить, имеет ли последовательность чисел, находящихся в файле, нечетную длину C++
В файле находятся только целые числа. Определить, имеет ли последовательность чисел, находящихся в файле, нечетную длину, и если да, то переменной midle присвоить значение среднего элемента файла. В противном случае присвоить этой переменной значение первого числа файла.
C++ Из множества точек выбрать такие три точки А, В, С, чтобы внутри треугольника АВС содержалось максимальное количество точек этого множества http://www.cyberforum.ru/cpp-beginners/thread947056.html
Из заданного множества точек на плоскости выбрать такие три точки А, В, С, чтобы внутри треугольника АВС содержалось максимальное количество точек этого множества.
C++ Как оптимизируются логические операторы? Интуиция подсказывает, что компиляторы могут оптимизировать проверку условий. Например: if(A && B)... В случае, если A==false, то нет смысла тратить процессорное время на проверку второго условия. Тогда можно избежать лишних IF, например при проверке границ массива. if((A>=0)&&(array==5))... В этом случае хотелось бы видеть оптимизацию. Без нее будет ошибка при попытке обратиться за границы... подробнее

Показать сообщение отдельно
CHELOVEKPAUK
 Аватар для CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
02.09.2013, 18:38  [ТС]     Читать слова по одному за раз, пока не будет введена буква q
Цитата Сообщение от Raali Посмотреть сообщение
Начало слова можно определить после того как был замечен пробел, если символ отличный от пробела- значит новое слово.

C++
1
2
3
4
5
6
7
8
9
char sentence[]="... ... ...";
int i = 0;
bool was_space = false;
while(true)
{
if(sentence[i]==' ') { was_space = true; ++i ; continue;}
if(was_space && (sentence[i] != ' ')) {was_space  = false;//тут началось новое слово}
++i;
}

что тут вообще происходит?
Как можно тогда записать данное выражение?
C++
1
2
3
if (word[0] == arr[1] || word[0] == arr[2] ||
word[0] == arr[3] || word[0] == arr[4] ||
word[0] == arr[5] || word[0] == arr[6])
Вот так чересчур громоздко.

Добавлено через 22 минуты
Если кому интересно, переделал так, вроде работает:

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
49
50
51
#include <iostream>
#include <Windows.h>
#include <string>
 
using namespace std;
 
#define rus setlocale(LC_ALL,"rus");SetConsoleCP(1251);SetConsoleOutputCP(1251);
 
void main()
{
    rus;
    short vowels = 0;
    short consonants = 0;
    short other = 0;
    char word[30] = {0};;
    char arr[12] = 
    {'a','i','o','e','y','u','A','I','O','E','Y','U'};
    
    for (int i = 0; i < 30; i++)
    {
        while (word[0] != '#')
        {
            cout << "Введите слово (что бы закончить, введите #): ";
            cin >> word;
            switch (word[0])
            {
            case 'a': 
            case 'A': 
            case 'O':
            case 'o':
            case 'e':
            case 'E':
            case 'I':
            case 'i':
            case 'Y':
            case 'y':
            case 'u':
            case 'U': vowels++; break;
            default: 
                if (isalpha(word[0]))
                    consonants++;
                else 
                    other++;
            }
        }
    }
    cout << "\n\aГласных - " << vowels;
    cout << "\nСогласных - " << consonants;
    cout << "\nДругих - " << other-1 << endl;
    system("pause");
}
Спасибо за ответы.
 
Текущее время: 03:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru