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

Вывести только те слова сообщения, которые встречаются в нем ровно один раз - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Чтение и сравнение символов из файла без использования массива http://www.cyberforum.ru/cpp-beginners/thread1099124.html
Здравствуйте, подскажите, как можно реализовать посимвольное чтение 2-х (3-х) файлов, при котором символ из 1-го файла сравнивается с символом из 2-го, не используя массивы.
C++ Создать вектор, содержащий несколько объектов типа данной структуры Здравствуйте, прошу помощи в создании вектора структур, т.е вот структура : struct MemoryBlock { size_t offset; size_t size; }; и мне надо создать вектор содержащий несколько объектов типа данной структуры, т.е : http://www.cyberforum.ru/cpp-beginners/thread1099108.html
C++ В одномерном массиве, состоящем из n вещественных элементов, вычислить количество отрицательных элементов массива
1)количество отрицательных элементов массива; 2)сумму модулей элементов массива, расположенных после минимального по модулю элемента. Заменить все отрицательные элементы массива их квадратами и упорядочить элементы массива по возрастанию. подскажите пожалуйста как делать:))
error LNK2019: ссылка на неразрешенный внешний символ. Maya API C++
Всем привет, есть ошибка с которой никак не получается справится. Код верен с уверенностью на 99%. Ругается всего на одну строчку определенного класса, библиотеки все подключены. Попробовал код с офф сайта с примером это же класса, тоже самое. В чем может быть причина? На что ошибка: MTime startFrame; startFrame = MAnimControl::minTime(); Ошибка моего кода:
C++ Усовершенствование кода http://www.cyberforum.ru/cpp-beginners/thread1099074.html
Добрый вечер форумчане. Только вхожу в C++ и объектно-ориентированное программирование на нём, хочется учиться сразу писать правильно. В общем накатал следующее: два класса, книга(Book) и библиотека(Library). Библиотека инициализируется 10-ю книгами, нужно было предусмотреть возможность поиска по полю и сортировку. Хотелось бы услышать советов по улучшению кода (без сильных извращений) и...
C++ В Одномерном массиве, состоящем из n вещественных элементов, вычислить: 1)количество элементов массива,равных 0; :) 2)сумму элементов массива,расположенных после минимального элемента. Упорядочить элементы массива по возрастанию модулей элементов. подробнее

Показать сообщение отдельно
filimoncc
1 / 1 / 1
Регистрация: 02.12.2013
Сообщений: 101
21.02.2014, 21:43  [ТС]     Вывести только те слова сообщения, которые встречаются в нем ровно один раз
Уважаемый GuGo1991, я проанализировал код, вырезал ненужное, дополнил и сделал код короче+подправил комментарии. Программа полностью работает

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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <iostream>
#include <string>
using namespace std;
 
bool check_func(char ch)
{
    if(ch == ' ' || ch == ',' || ch == '.')
       { return true;} else
    return false;
}
 
int main()
{
    string s, temp;
    string* str;
    int index = 0, counter = 0, size;
    cout << "Enter string: ";
    getline(cin, s); //Сохраняем в s напечатанную строку
 
    while(s[index]) //Пока не дойдём до нулевого символа s
    {
        if(check_func(s[index])) //Если функция возвращает true,
        {                         //значит мы наткнулись на пробел, запятую или точку
            while(check_func(s[index])) //Пока имеем подобный символ
            {
                index++; //проверяем следующий элемент строки
            }
            counter++; //Увеличиваем счётчик
        }
        index++; //Если функция возвращает false, проверяем следующий элемент строки
    }
    //В счётчике хранится количество интервалов между словами в строке.
    //Т. е. запятые с пробелами, точки (всё что не касается слов) и по нему задается размер массива
    size = counter ; //Задаем размер массива
    str = new string[size]; //Создаём массив, в который будем сохранять слова
    counter = 0;
    index = 0;
 
    //Повторяем те же операции
    while(s[index])
    {
        if(!check_func(s[index]))//если не символ, то цикл открывает свою работу
        {
            temp += s[index]; //только теперь каждую букву слова сохраняем в temp
            if(!s[index + 1]) //Если встречается вдруг символ на следующей позиции, немедленно запускается цикл
            {
                str[counter] = temp; //куча буковок, называемых словом, сохраняется в массив
              temp.clear(); //очищаем temp
                counter++; //увеличивается индекс массива.
            }              //это условие нужно,если будет много символов подряд.
        }
        else//это к первому if
        {
            if(temp != "") //Если первое условие не выполнилось, а в temp осталось слово
            {
                str[counter] = temp; //сохраняем кучу буковок что нашлось в массив
                temp.clear(); //очищаем temp
                counter++; //увеличиваем индекс для массива
            }
        }
        index++;//увеличиваем индекс для перебора буковок
    }
 
    for(int i = 0; i < size; i++)
    {
            cout << str[i] << "\n"; //выводим слово
    }
 
    return 0;
}
Добавлено через 2 минуты
Правда там еще и не все символы в check_func указаны, но это кому как надо.
 
Текущее время: 09:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru