Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2012, 15:11   #1
MK_9
Новичок
Джуниор
 
Регистрация: 14.03.2012
Сообщений: 2
По умолчанию Свертка повторяющихся подстрок по следующим правилам

Помогите, не могу понять задание.
В заданной строке символов выполнить свертку повторяющихся подстрок по следующим правилам: а) несколько последовательных повторений одной и той же подстроки заменяются так: хххх на 4(х), уbcbcх на у2(bc)х; б) это правило можно применять дважды, например: 4(х)b4(х)b заменяется на 4(4(х)b).
Может у кого-нибудь подобное задание есть?
MK_9 вне форума Ответить с цитированием
Старый 11.04.2012, 20:04   #2
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

http://www.programmersforum.ru/showthread.php?t=34061
_Bers вне форума Ответить с цитированием
Старый 24.04.2012, 16:37   #3
MK_9
Новичок
Джуниор
 
Регистрация: 14.03.2012
Сообщений: 2
По умолчанию

Помогите исправить, чтобы программа повторила дважды правило.
PHP код:
// Лабараторная 7.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include "iostream"
#include "conio.h"
using namespace std;

 
 
void main(void)
{
    
setlocale(0,"RUS");
    
char h;
    
cout <<"Здравствуйте"<< endl
        
<<"Желаете начать работу, y/n? ";
    
cin >> h;
    while (
h!='n')
    {   
     
int i=0j=0;
     
char *st = new char [512];
     
char *st1 = new char [512];
     
char *st2 = new char [512];
     
char *st3 = new char [512];
     
cout <<"Введите строку: ";
     
cin.get();
     
cin.getline(st,512);
     
int n=strlen(st); 
     while (
n)
      {
           if (
st[i] == 'x' && st[i+1] == 'x' && st[i+2] == 'x' && st[i+3] == 'x')
           {
              
st1[j] = '4';
              
st1[j+1] = '(';
              
st1[j+2] = 'x';
              
st1[j+3] = ')';
              
j+4;
              
i+4;
           }
           if (
st[i] == 'y' && st[i+1] == 'b' && st[i+2] == 'c' && st[i+3] == 'b' && st[i+4] == 'c' && st[i+5] == 'x' )
           {
              
st1[j] = '2';
              
st1[j+1] = '(';
              
st1[j+2] = 'b';
              
st1[j+3] = 'c';
              
st1[j+4] = ')';
              
st1[j+5] = 'x';
              
j+6;
              
i+6;
           }
         else
           {
              
st1[j] = st[i];
              
j=j+1;
              
i=i+1;
           }
      }
    
cout <<("Полученная строка:\n");
    
st1[n]=' \0';
    
cout << st1 << endl;
    
cout <<"Повторить дважды?, y/n? ";
    
cin >> h;
    while (
h!='n')
    { 
        if (
st1[i] == '4' && st1[i+1] == '(' && st1[i+2] == 'x' && st1[i+3] == ')'&& st1[i+4] == 'b' && st1[i+5] == '4' && st1[i+6] == '(' && st1[i+7] == 'x' && st1[i+8] == ')' && st1[i+9] == 'b'
           {
              
st2[j] = '2';
              
st2[j+1] = '(';
              
st2[j+2] = '4';
              
st2[j+3] = '(';
              
st2[j+4] = 'x';
              
st2[j+5] = ')';
              
st2[j+6] = 'b';
              
st2[j+7] = ')';
              
j+8;
              
i+10;
           }
         else
           {
              
st2[j] = st1[i];
              
j=j+1;
              
i=i+1;
           }
    
cout <<("Полученная строка:\n");
    
st2[n]=' \0';
    
cout << st2 << endl;
    }
    }
    
cout << "Желаете повторить работу, y/n? ";
    
cin >> h;
 } 

Последний раз редактировалось MK_9; 25.04.2012 в 04:24.
MK_9 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
следование правилам... VIK_aka_TOR О форуме и сайтах клуба 4 29.02.2012 12:36
Любому стихотворению можно поставить в соответствие его схему по следующим правилам. Васька Паскаль, Turbo Pascal, PascalABC.NET 3 16.11.2008 22:11