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

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

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

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

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

Разбить введенное слово на слоги так, чтобы в первом слогу было больше чем одна буква и оканчивалась на гласную, а второй слог содержал хотя бы одну гласную.
Не могу понять какие использовать функции.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2013, 17:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разбить введенное слово на слоги (C++):

Разбить на слоги каждое четное слово в строке, а каждое нечетное записать в обратном порядке - C++
Нужно разбить на слога каждое слово на парной позиции в строчке,а каждое на непарной позиции записать в обратном порядке

Разбить введенное слово на массив букв - C++
Собственно задача стоит так: С клавиатуры вводится любое слово( допустим слово "English") Программа создает массив букв входящих...

Ввести строку и слово. Вставить введенное слово за пятым словом в строке - C++
Помогите ребят. Нужно написать программу на С++ без использования библиотек <ctype.h>, <string.h> или <stdlib.h>. Ввести строку и...

Ввести строку и слово. Вставить введенное слово за самым коротким словом в строке. - C++
помогите

Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А - C++
Дана задача написать, чтобы с++ делила слово на слоги в том месте где стоит буква А, например к слову КАЗАХСТАН, отсюда чтобы с++ должна...

Разбить введенное пользователем предложение на отдельные слова - C++
Столкнулся с проблемой, казалось бы на простой задаче: хотел разбить введенную пользователем строку( предложение) на отдельные строки...

8
gazlan
3132 / 1908 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
25.02.2013, 22:57 #2
Мне кажется, сама постановка задачи ошибочна. Например, слово Я-МА вы как поделите?
0
daslex
1271 / 515 / 106
Регистрация: 02.08.2011
Сообщений: 2,706
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;
}
Яма = Яма
Коровопостроение = Коро - во - по - стро - ени - е
Мамонт = Мамо - нт
хорошее = хоро - ше - е
бесперспективность = беспе - рспе - кти -вно - сть
идеал = иде - ал
длиношееер = дли - но - ше - е - ер
благополучие = бла - го - по - лу - чи -е
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
26.02.2013, 01:15 #4
Цитата Сообщение от daslex Посмотреть сообщение
так и поделит яма
я-ма

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

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

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


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

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

Считать введенное пользователем слово - C++
Помогите: Запрашивать у пользователя строки до тех пор, пока он не введет строку «Vse»; Я не пойму как определить что пользователь...

Является ли введенное слово числом - C++
1)Составить программу определяющую является ли введенное слово числом.

удалить введенное слово из файла - C++
Препод вводит предложение , оно записывается в файл , после чего вводит слово и оно должно удалиться из файла. На что меня хватило: ...

Определить содержит ли текст введенное слово - C++
Дан файл содержащий производный текст. Определить содержит ли текст введенное слово. Напишите пожалуйста подробную программу , если можно...


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

Или воспользуйтесь поиском по форуму:
9
Yandex
Объявления
25.10.2013, 21:10
Ответ Создать тему
Опции темы

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