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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
leonP4
4 / 1 / 1
Регистрация: 08.03.2013
Сообщений: 63
#1

Получить слово во множественном числе - C++

25.12.2013, 04:40. Просмотров 400. Ответов 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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include "stdafx.h"
#include"math.h"
#include <locale>
#include <iostream>
#include <string>
#include <vector>
#include<conio.h>
using namespace std;
 
 
 
void split(std::vector<std::string>& v, const std::string& s, const std::string& delim) //юзаем велосипед
{
    std::string::size_type first = 0;
    std::string::size_type last = 0;
 
    while( (first = s.find_first_not_of(delim, last)) != std::string::npos )
    {
        if( (last = s.find_first_of(delim, first) ) != std::string::npos )
            v.push_back( s.substr(first, last - first) );
        else
            v.push_back( s.substr(first, s.length() - first) );
    }
}
 
int main()
{
    int mas = 0;
    std::string Vv;
    setlocale(LC_CTYPE, "russian");
    int end;
    std::string s = "Вороненок выпал из гнезда и сказал: мышонок ципленок олененок ребенок опенок подонок кроленок";
    std::vector<std::string> v;
    split(v, s, " ,.:");
 
    cout<<"Выделяем слова из текста: "<<endl<<endl;
    for(size_t i = 0; i < v.size(); ++i) {
        cout << v[i] << " ";
    }
 
    cout<<endl<<endl<<"Ищем нужные нам слова: "<<endl<<endl;
    for(size_t i = 0; i < v.size(); ++i) {
        mas = v[i].size();
        Vv = v[i];
        for(int ji=0; ji<=mas; ji++ ) {
           if((Vv[ji] == *"онок") || (Vv[ji] == *"енок")) {
               тут изменяем окончание слов и выводим на экран
           }
        }
    }
 
    cin>>end;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2013, 04:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Получить слово во множественном числе (C++):

Дано слово а. Получить слово b, образованное нечётными буквами слова а. - C++
8.1.2. Помогите, пожалуйста, решить задачу в С++. Дано слово а. Получить слово b, образованное нечётными буквами слова а.

Переставить цифры в этом числе так, чтобы получить наименьшее из чисел - C++
Задача такая: Задано натуральное N, состоящее не более, чем из 6 цифр. Переставить цифры в этом числе так, чтобы получить наименьшее из...

Ромб в множественном наследовании - C++
Добрый день ! Не помню как устранить проблему ромба в множественном наследовании. Вроде нужно втулить куда-то слово виртуал 2...

Перестановка цифр в числе таким образом, чтобы получить наименьшее число записанное этими же цифрами - C++
Дано: в данном натуральном числе переставить цифры таким образом, чтобы получилось наименьшее число записанное этими же цифрами. ...

Неоднозначность при множественном наследовании - C++
Привет всем, столкнулся с проблемой при множественном наследовании классов. Надеюсь, кто-нибудь поможет как можно скорее. Ошибка...

Конструктор при множественном наследовании - C++
#include &lt;string&gt; class Worker // an abstract base class { private: std::string fullname; long id; public: ...

5
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.12.2013, 05:43 #2
Цитата Сообщение от leonP4 Посмотреть сообщение
А это код, начал писать, и напоролся на ошибку
Какую?
0
leonP4
4 / 1 / 1
Регистрация: 08.03.2013
Сообщений: 63
25.12.2013, 05:48  [ТС] #3
Добавлено через 2 минуты
Цитата Сообщение от alsav22 Посмотреть сообщение
Какую?
вот в этом месте ошибка
C++
1
if((Vv[ji] == *"онок") || (Vv[ji] == *"енок"))
Программа "[7408] 817.exe: Машинный код" завершилась с кодом 3 (0x3).
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.12.2013, 05:51 #4
Цитата Сообщение от leonP4 Посмотреть сообщение
ji<=mas;
При таком условии будет выход за границу строки. Просто <.
1
leonP4
4 / 1 / 1
Регистрация: 08.03.2013
Сообщений: 63
25.12.2013, 05:57  [ТС] #5
Цитата Сообщение от alsav22 Посмотреть сообщение
При таком условии будет выход за границу строки. Просто <.
О действительно, спасибо! На самом мелком запоролся
Ладно, цикл пошел, только выводит он немного не те слова, видимо проверка на окончание ошибочная, буду переписывать
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.12.2013, 06:04 #6
Цитата Сообщение от leonP4 Посмотреть сообщение
видимо проверка на окончание ошибочная
Там совсем не то сравниваете: каждую букву слова с первым символом "онок", "енок".
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2013, 06:04
Привет! Вот еще темы с ответами:

Инициализация при множественном наследовании - C++
Имеется иерархия типов. Во главе: базовый класс-интерфейс, далее один базовый класс, от него два производных, а от них множественно...

Переопределение VTABLE при множественном наследование - C++
Добрый вечер, #include &lt;iostream&gt; using namespace std; struct A { int a; virtual void same(){} virtual void...

Конструкторы с параметрами при множественном наследовании - C++
у меня есть класс, quotes который является базовым для двух классов moving_average и rsi (наследуются от quotes чз virtual) эти два класса...

Конфликт имен при множественном наследовании struct - C++
Уважаемые гуру, помогите разрешить конфликт имён в приведённом ниже примере, не изменяя структуру наследования. Заранее спасибо! ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Yandex
Объявления
25.12.2013, 06:04
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru