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

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

Войти
Регистрация
Восстановить пароль
 
 
Бауыржан
-18 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 165
#1

Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А - C++

10.11.2013, 19:08. Просмотров 1095. Ответов 33
Метки нет (Все метки)

Дана задача написать, чтобы с++ делила слово на слоги в том месте где стоит буква А, например к слову КАЗАХСТАН, отсюда чтобы с++ должна была написать КА-ЗА-ХСТА-Н
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2013, 19:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А (C++):

Почему Visual Studio показывает ошибку в том месте, где ее нет? - C++
Почему Visual Studio показывает ошибку в том месте, где ее нет?

Выполнить кольцевой сдвиг элементов массива так чтобы его первый максимальный элемент оказался на k-том месте - C++
Дан одномерный массив размерность n и число k. Если в исходном массиве чисел больше, чем k, то в массиве выполнить кольцевой сдвиг...

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

Доделать и исправить. Дано слово из 12 букв. Поменять местами его трети: первую треть разместить на месте третьей, вторую на месте первой и 3 на 2 - C++
#include<stdio.h> #include<iostream.h> int main(void) { int i,j; char slovo; for(i=0;i<4;i++) { for(j=0;j<3;j++) ...

(Только простой вариант)Дано слово и буква.Сколько раз эта буква встречается в слове - C++
Дано слово и буква.Сколько раз эта буква встречается в слове.

Сделать так чтобы Form2 появлялась ровно в том же месте где и Form1 - C#
{ Form2 form = new Form2(); form.Show(); } как сделать так чтобы Form2 появлялась ровно в том же месте где и Form1?...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
10.11.2013, 19:20 #2
Бауыржан, а при чем тут массивы? Делаете цикл, в нем условие if (a[i] == 'A') cout << "-"
0
Tulosba
10.11.2013, 19:33
  #3

Не по теме:

Цитата Сообщение от Folko Посмотреть сообщение
а при чем тут массивы?
Цитата Сообщение от Folko Посмотреть сообщение
a[i]
массивов нет?

0
Бауыржан
-18 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 165
10.11.2013, 19:39  [ТС] #4
по ходу тут есть массивы в построений программы или же всё таки нет?

Добавлено через 1 минуту
Tulosba помоги в построений программы я новичок каак написать?? чтобы с++ делила слово на слоги в том месте где стоит буква А, например к слову КАЗАХСТАН, отсюда чтобы с++ должна была написать КА-ЗА-ХСТА-Н любые введённые слова чтобы делила где А
0
taras atavin
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
10.11.2013, 19:42 #5
Цитата Сообщение от Бауыржан Посмотреть сообщение
Нужна пмщ
Может пмж?
1
Бауыржан
-18 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 165
10.11.2013, 19:44  [ТС] #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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
/****** grmxtd.c - грамматический перенос  08.12.92 ***/
#include "a.h"
#include "xtd.h"
 void *malc();
 static char LW[] = "аеиоуэюяыaeoui";
 asi word = 0;  /* 1 - не разбивать слова */
 static char *fr;
 
static perno(int a, int b);    /* Поиск возможного переноса в fr[a:b]         */
                /* Возвращает место возможного переноса или 0 */
/************************* Поиск гласной в fr[a,b]  *******/
static choilw(int a, int b);   /* Возвращает номер гласной или -1 */
/* ------------------ */
XTD *grmxtd(char *from, int nt)
{  int k, rw1, rw2, bw1, bw2, bp, nf, j, r1, r2, kf;
   XTD *x; char *to;   char frnt;
       /* r1 - разделитель до переноса              */
       /* r2 - разделитель после переносимого слова */
       /* rw1 - гласная до переноса                 */
       /* rw2 - гласная после переноса              */
       /* bw1 - есть ли гласная до переноса         */
       /* bw2 - есть ли гласная после переноса      */
       /* bp - анализ и пропуск пробела             */
 
  x = genxtd();
  if (nt<1) return(x);
  to = malc(nt+1);
  if (from==NULL) fr="";
  else fr = from;
 
a:  nf=strlen(fr);
    if (nf==0) {
       if (x->ns==0) asgxtd(x,fr);
       free(to);
       return(x);
    }
    bp = bw1 = bw2 = 0;
    memst(to, ' ', nt);
                   /* Символ '@' вызывает насильственный перенос */
  k=(nf>nt) ? nt+1 : nf;
  afc(j,k) {
     if (fr[j]=='@') {
     memcpy(to,fr,j);
     kf = j+1;
     goto a2;
     }
  }
  if (nf<=nt) {  /* Все и так помещается  */
      kf = nf; goto a1; }
 
  frnt=fr[nt];
  if ( frnt==' ' || frnt=='(' ||
       (frnt=='"' && !isbu(fr[nt-1])) || nt < 3 ) { /* Естественная разбивка  */
                                 kf=nt; bp=1; goto a1;  }
 
   for (r1=nt-1;r1>=0; r1--)
    if (isbu(fr[r1])==0) break;
          /* на выходе из этого цикла r1=номеру разделителя или -1  */
 
    if ( r1==nt-1  ||  r1==nt-2 )  /* Перенос по концу слова  */
                        goto forc2;
    if (r1==nt-3)    {
     if (fr[r1] !='(' && !(fr[r1]=='"' && !isbu(fr[r1-1])) || nt==3) r1++;
     kf=r1;
     goto a1;
    }
    if (word) goto forc;
 
   if ((rw1=choilw(r1+1,nt-2))>=0) bw1=1;
   if (!bw1) goto forc;            /* Нету гласных  */
 
   afcn(r2,nt,nf)       /* Поиск разделителя после слова  */
     if (isbu(fr[r2])==0) break;
                        /* Теперь слово ограничено r1 и r2  */
 
   afcn(j,r1+1,r2-1) /* Если в слове есть цифры - грубый перенос */
     if ('0'<=fr[j] && fr[j]<='9') goto forc;
 
   for (rw2=nt-1; rw2<r2; rw2++)  /* Поиск гласной за переносом */
     if (strchr(LW,tolow(fr[rw2]))!=NULL)   {  bw2=1;  break; }
 
                         /* Начальная попытка  */
   if (rw2==r2-1  && rw2==nt-1)
                k = perno(rw1,nt-3);
   else
       if (bw2) k = perno(rw1,nt-2);
       else k=0;
   while (k==0)  {     /* Пока перенос не найден  */
     if ((j=choilw(r1+1,rw1-1)) < 0 )
                   goto forc;  /* Гласные кончились - грубый перенос */
     rw2=rw1;  rw1=j;
     k = perno(rw1,rw2-1);
   }
              /* нашли перенос после fr[k]   */
    kf = k+1;
    to[kf] = '-';
    goto a1;
 
forc:                     /* Грубый перенос  */
        if (r1<1) {
         kf = nt;
         goto a1;
        }
 
forc2:               /* Перенос по концу слова */
   kf=r1;
   if ( fr[r1] != '(' && !(fr[r1]=='"' && !isbu(fr[r1-1]))) kf++;
   bp=1;
 
a1:     memcpy(to,fr,kf);
        if (bp && fr[kf]==' ') kf++;
 
a2: fr += kf;
    asgxtd(x,to);
    goto a;
}
/************************* Поиск гласной в fr[a,b]  *******/
static choilw(int a, int b)   /* Возвращает номер гласной или -1 */
{  int j;
      for(j=b; j>=a; j--)
      if (strchr(LW, tolow(fr[j]))!=NULL) return(j);
      return(-1);   }
/*************************/
static perno(int a, int b)    /* Поиск возможного переноса в fr[a:b]         */
                /* Возвращает место возможного переноса или 0 */
{ int j; char s_1,s0,s1;
      for (j=b; j>=a; j--)  {  /* Изучение возможности переноса после j-того символа */
         s1=tolow(fr[j+1]);
                /* Чтоб Ь и Ъ не отрывались  */
     if (s1=='ъ' || s1=='ь') continue;
                /* согласная - гласная : нехорошо */
         s0=fr[j];
     if (strchr(LW,s1)!=NULL && strchr(LW,s0)==NULL
          && strchr("ьъ",s0)==NULL) continue;
                /* гласная - Й : нехорошо  */
         if (strchr(LW,s0)!=NULL && s1=='й' ) continue;
        /* гласная гласная - : нехорошо  */
         s_1=tolow(fr[j-1]);
     if (strchr(LW,s_1)!=NULL && strchr(LW,s0)!=NULL) continue;
                /*  ХХ- и -ХХ : нехорошо  */
         if (s0==s_1) continue;
     if (fr[j+1]==fr[j+2]) continue;
                /* Чтоб одна буква не оставалась */
     if (isbu(s_1)==0) return(0);
         return(j);
      }
      return (0);               }
/****************/
set_grm_word(int k)
{  int OldWord;
 
  OldWord = word;
  word = k;  
  return(OldWord);
}
/**************/
Добавлено через 30 секунд
подскажите что отсюда мне взять для моей программы
0
taras atavin
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
10.11.2013, 19:45 #7
Цитата Сообщение от Tulosba Посмотреть сообщение
массивов нет?
А ничего, что строчный тип - совершенно особый тип скалярного массива.
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
10.11.2013, 19:51 #8

Не по теме:

Цитата Сообщение от taras atavin Посмотреть сообщение
Может пмж?
Казахстан. пмж... есть в этом что-то



Добавлено через 44 секунды
Цитата Сообщение от Бауыржан Посмотреть сообщение
например к слову КАЗАХСТАН
а слово в каком типе данных представлено?
0
Бауыржан
-18 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 165
10.11.2013, 19:53  [ТС] #9
ну при введений разных слов встречающихся в них букв А например Казахстан Массив Красиво программа написала так Ка-за-хста-н Ма-ссив Кра-сиво смекаете??)) помогите пожалуйста!
0
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
10.11.2013, 19:55 #10
Tulosba, массивов нет. Есть строка
0
Tulosba
10.11.2013, 19:56
  #11

Не по теме:

Цитата Сообщение от Folko Посмотреть сообщение
массивов нет. Есть строка
И то, что строка - это массив символов, уже не важно...

0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
10.11.2013, 19:59 #12
C++
1
2
3
4
5
6
7
8
for (char* i=str; *i; i++)
  if(*i=='A'){
    char tmp='-';
    for (j=i+1; *j; j++)
      if(tmp!=*j)
        tmp^=*j^=tmp^=*j;//обмен *j и tmp можно заменить на более понятный k=*j; *j=tmp; tmp=k;
    *j++=tmp; *j=0;
  }
0
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
10.11.2013, 20:01 #13
Tulosba,

Не по теме:

если начать вертеть слова и понятия, то важно, но если решать задачу, то нет. string str и char a[10] все таки объявляются по разному, поэтому давайте не путать тс'а. Здесь можно обойтись и без массивов, только одной строкой

0
Бауыржан
-18 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 165
10.11.2013, 20:01  [ТС] #14
ну так есть добрые люди или нет?? или не остались? притворяемся вопросами?
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
10.11.2013, 20:05 #15

Не по теме:

Цитата Сообщение от Бауыржан Посмотреть сообщение
Нужна пмщ
Напомнило
http://img2.joyreactor.cc/pics/post/...B0-150132.jpeg

Цитата Сообщение от Бауыржан Посмотреть сообщение
ну так есть добрые люди или нет?? или не остались? притворяемся вопросами?
Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2013, 20:05
Привет! Вот еще темы с ответами:

Оформите выражение c=a+b; в виде функции и вызовите функцию в том месте, где стоит это выражение - C (СИ)
Вот программа #include &lt;stdio.h&gt; int main () { int a,b,c; printf (&quot;Vvedite 2 chisla: \n&quot;); scanf (&quot;%d&quot;,&amp;a); scanf (&quot;%d&quot;,&amp;b); ...

Как сделать так чтобы Form2 появлялась ровно в том же месте где и Form1 - C#
Эту тему читал http://www.cyberforum.ru/windows-forms/thread248400.html Но ответы не помогли. Форма остается на том же месте. И что уже...

Как сделать, что бы в Memo1, на месте (строке) где стоит курсор, выделялась цветом строчка, где стоит печатный курсор «|»? - C++ Builder
Как сделать, что бы в Memo1, на месте (строке) где стоит курсор, выделялась цветом строчка, где стоит печатный курсор «|»?

Показать картинку на том месте, где кликнули мышью - PascalABC.NET
Вот заготовка программы (игры), но пока хочу лишь чтобы при клике картинка появлялась там, где кликнули. пробую, выдаёт ошибку object...


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

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

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