Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 1
Регистрация: 12.03.2013
Сообщений: 24
1

Составить процедуру сжатия исходной последовательности символов

06.06.2013, 21:46. Показов 1534. Ответов 4
Метки нет (Все метки)

составить процедуру сжатия исходной последовательности символов: каждая подпоследовательность состоящая из нескольких вхождений одного и того же символа заменяется на текст x(k), где x - символ, k - строка являющаяся записью числа вхождений символа х в исходную последовательность...
помогите исправить программу, чтобы программа делала замену только при к>3, а остальное сохраняло.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
int main()
{
    char str[] = "FFbbDD   DccccN", buf[256], *p = str, *pTmp = NULL;
    ptrdiff_t cntr, offset = 0;
    while(*p)
    {
        pTmp = p;
        while(*p == *pTmp) ++p;
        cntr = p - pTmp;
        offset += sprintf(buf + offset, cntr > 1 ? "%c(%d)" : "%c", *pTmp, cntr);
    }
    puts(buf);
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.06.2013, 21:46
Ответы с готовыми решениями:

Составить процедуру сжатия исходной последовательности символов
составить процедуру сжатия исходной последовательности символов: каждая подпоследовательность...

Составить процедуру сжатия последовательности символов
составить процедуру сжатия последовательности символов каждая последовательность состоящая из...

Составить программу «сжатия» исходной строки символов
3. Составить программу «сжатия» исходной строки симво- лов: каждая подстрока, состоящая из...

Составить пpогpамму "сжатия" исходной стpоки символов
Задана строка символов, содержащая только буквы. Составить пpогpамму &quot;сжатия&quot; исходной стpоки...

4
...
1802 / 1267 / 934
Регистрация: 12.02.2013
Сообщений: 2,058
07.06.2013, 06:45 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
#include <stdio.h>
 
int main()
{
   char str[] = "FFbbDD   DccccN", buf[256], *p = str, *pTmp = NULL;
   ptrdiff_t cntr, offset = 0;
   while (*p)
   {
      pTmp = p;
      while (*p == *pTmp)
      {
         ++p;
      }
      cntr = p - pTmp;
 
      if (cntr > 3)
      {
         offset += sprintf(buf + offset, "%c(%d)", *pTmp, cntr);
      }
      else
      {
         offset += sprintf(buf + offset, "%.*s", cntr, pTmp);
      }
   }
   puts(buf);
   return 0;
}
1
0 / 0 / 1
Регистрация: 12.03.2013
Сообщений: 24
07.06.2013, 06:56  [ТС] 3
а что значит buf + offset ?
0
...
1802 / 1267 / 934
Регистрация: 12.02.2013
Сообщений: 2,058
07.06.2013, 07:01 4

Не по теме:

По правилам хорошего тона можно было бы и спасибо сказать.



Цитата Сообщение от Olga1994 Посмотреть сообщение
а что значит buf + offset ?
Это ваш код. А означает он смещение в строке.
0
0 / 0 / 1
Регистрация: 12.03.2013
Сообщений: 24
07.06.2013, 08:36  [ТС] 5
простите...спасибо)))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.06.2013, 08:36

Составить процедуру, заменяющую в исходной строке символов все единицы нулями и все нули единицами
составить процедуру, заменяющую в исходной строке символов все единицы нулями и все нули единицами....

Составить процедуру, заменяющую в исходной строке символов все единицы нулями и все нули единицами
составить процедуру, заменяющую в исходной строке символов все единицы нулями и все нули единицами....

В исходной строке а$ заменить все вхождения заданной последовательности символов x$ на другую заданную последовательность символов y$
В исходной строке а$ заменить все вхождения заданной последовательности символов x$ на другую...

Сжатие исходной последовательности символов
Не могу решить задачу. Помогите, пожалуйста. Разработать и испытать функцию “сжатия” исходной...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru