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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.92
DIEZEL-man
13 / 13 / 0
Регистрация: 17.02.2013
Сообщений: 54
#1

Разбить введенное слово на слоги - C++

25.02.2013, 17:27. Просмотров 3177. Ответов 8
Метки нет (Все метки)

Разбить введенное слово на слоги так, чтобы в первом слогу было больше чем одна буква и оканчивалась на гласную, а второй слог содержал хотя бы одну гласную.
Не могу понять какие использовать функции.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2013, 17:27     Разбить введенное слово на слоги
Посмотрите здесь:
C++ Разбить на слоги каждое четное слово в строке, а каждое нечетное записать в обратном порядке
Разбить введенное слово на массив букв C++
Ввести строку и слово. Вставить введенное слово за пятым словом в строке C++
C++ Ввести строку и слово. Вставить введенное слово за самым коротким словом в строке.
C++ Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А
C++ удалить введенное слово из файла
C++ Считать введенное пользователем слово
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gazlan
3130 / 1905 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
25.02.2013, 22:57     Разбить введенное слово на слоги #2
Мне кажется, сама постановка задачи ошибочна. Например, слово Я-МА вы как поделите?
daslex
1271 / 516 / 106
Регистрация: 02.08.2011
Сообщений: 2,662
26.02.2013, 01:12     Разбить введенное слово на слоги #3

Не по теме:

так и поделит яма



Добавлено через 2 часа 6 минут
Программой называть нельзя - это костыль, но этот костыль немного умеет


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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <iostream>
#include <string>
 
using namespace std;
 
bool myfunc(char ch)
{
    
    char glas[]="УЕЭОАЫЯИЮуеэоаыяию";
    
    
    for (unsigned i=0;i<strlen(glas);i++)
    {
        if (ch==glas[i]) return 1;
    }
 
    return 0;
 
}
 
int main()
{
    char S[255];
    int count=0,i=0;
    system("chcp 1251");
 
    cin.getline(S,255);
 
        
    unsigned int j=1;
    int cur=0;
        
    if (strlen(S)>3)
    {
    cout<<S[0];
    
    do
    {
    if (myfunc(S[cur]))
    {       
        do
        {                   
            cout<<S[j];
            j++;
        } 
        while (myfunc(S[j+1]));
        
        cout<<"\n"<<S[j];       
        j++;
 
    } else if (!myfunc(S[cur]))
      {
        do
        {
            if (j>strlen(S)-2)
            {
                cout<<S[j];
                j++;
                goto l1;
            }
            cout<<S[j];
            j++;
        }
        while (!myfunc(S[j]));
        cout<<S[j]<<"\n";
        
        if (j==strlen(S)-2) 
        {
            cout<<S[j+1];
            j++;
        }
        j++;
      }
    cur=j;  
    }
    while (j<strlen(S)-1);
    }
    else cout<<S;
    
 
l1:
        if (j==strlen(S)-1) cout<<S[j];
 
    cin.get();
    cin.get();
    return 0;
}
Яма = Яма
Коровопостроение = Коро - во - по - стро - ени - е
Мамонт = Мамо - нт
хорошее = хоро - ше - е
бесперспективность = беспе - рспе - кти -вно - сть
идеал = иде - ал
длиношееер = дли - но - ше - е - ер
благополучие = бла - го - по - лу - чи -е
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,922
Записей в блоге: 1
26.02.2013, 01:15     Разбить введенное слово на слоги #4
Цитата Сообщение от daslex Посмотреть сообщение
так и поделит яма
я-ма

Добавлено через 50 секунд
Цитата Сообщение от daslex Посмотреть сообщение
bool myfunc(char ch)
strchr() не?
daslex
1271 / 516 / 106
Регистрация: 02.08.2011
Сообщений: 2,662
26.02.2013, 01:19     Разбить введенное слово на слоги #5
Kuzia domovenok, там условие, что слог
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
я-ма
Цитата Сообщение от DIEZEL-man Посмотреть сообщение
в первом слогу было больше чем одна буква
Дик
0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 18
25.10.2013, 20:33     Разбить введенное слово на слоги #6
Ну да) задача видимо такая, как у меня: Дан текст, состоящий из русских слов. Составить программу, выполняющую разделение его на слоги путём вставки между ними чёрточек. Основные правила разделения на слоги следующие:
1) Две идущие подряд гласные можно разделить, если первой из них предшествует согласная,а за второй идет хотя бы одна буква.
2) Две идущие подряд согласные можно разделить, если первые из них предшествует гласная, а в той части слова, которая идёт за второй согласной, имеется хотя бы одна гласная.
Если не удаётся применить пункты 1),2),то следует попытаться разбить слово так, чтобы первая часть содержала более чем одну букву и оканчивались на гласную, а вторая содержала хотя бы одну гласную.
gazlan
3130 / 1905 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
25.10.2013, 20:55     Разбить введенное слово на слоги #7
1. IMHO, следовало бы создать новую тему. Все-таки у вас отличающееся задание.
2. Я-МА опять не поделится.
3. Первые два пункта легко реализуются " в лоб" - сканируете слово, просматриваете текущую букву и следующую за ней. Если удовлетворяет правилу - вставляете дефис.
Остальное... вот, к примеру "чиуауа" (порода собак) как правильно делить?

А вот еще, из вики:

самые длинные односложные слова: «взбзднуть» (9 букв); «вскользь» (8 букв); «всласть», «всплеск», «вскрыть», «всклень», «всплыть», «встрять», «страсть» (7 букв)
Trademaster
3 / 3 / 0
Регистрация: 08.10.2013
Сообщений: 21
25.10.2013, 21:08     Разбить введенное слово на слоги #8
Создай массив \ список гласных букв и каждый раз делаем так:
берем вводное слово , первая буква гласная? Заносим в массив.
вторая согласная? А первая была гласная? Динамически заносим в список второй слог , дальше проверяем ,третья буква (после гласной) согласная? Если да ,то эту букву в массив с второй буквой (т.е во второй слог ,первый слог - это одна гласная буква). И т.д.


Вывод : забейте все гласные и согласные буквы в списки ,создайте список массивов char ,написать код ,который определяет слоги и заносит каждый слог ,как отдельный массив в список..

СОРИ ,ЕСЛИ Я ЧТО ТО НЕ ПОНЯТНО НАПИСАЛ )
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2013, 21:10     Разбить введенное слово на слоги
Еще ссылки по теме:
C++ Является ли введенное слово числом
C++ Проверить содержит ли строка введенное слово
Определить содержит ли текст введенное слово C++
Составить программу, которая обращает введенное слово C++
C++ Вывести только предложения, содержащие введенное слово

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

Или воспользуйтесь поиском по форуму:
Дик
0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 18
25.10.2013, 21:10     Разбить введенное слово на слоги #9
ну примерно напишите как ) я просто не очень хорошо разбираюсь) а мне задали) препод мало что дает из материала) если не сложно помогите с чего начать то? А кстати я создал тему так-то: Разделение слов на слоги в С++
Yandex
Объявления
25.10.2013, 21:10     Разбить введенное слово на слоги
Ответ Создать тему
Опции темы

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