В заданной строке заменить все последовательности одинаковых символов длиной более двух на конструкцию - C (СИ)
Формулировка задачи:
Не могу понять в чем ошибка... Прога не работает... Задание такое: В заданной строке заменить все последовательности одинаковых символов длиной более двух на конструкцию (k)a, где k- количество повторений символа a.
Входные данные:
abbcdddeeffffghh
Выходные данные:
abbc(3)dee(4)fghh
Во время работы программы будут использоваться переменные:
S1 – исходная строка символов
S6 – итоговая строка
S0 – скобки
S – количество одинаковых стоящих рядом символов, первоначальное значение s = 1.
#include <stdio.h> #include <conio.h> #include <math.h> #include <string.h> int main() { unsigned int i, n, s; char str[50], s0,s1,s2,s3,s4,s5,s6; printf("\nlaboratornaya rabota №5_1"); printf("\nvariant №8"); printf("\nIS-12-2"); printf("\nHamchuk Evgeniy\n"); printf("\nEntrance data\n"); printf("\nEnter a line of symbols:\n"); printf("\n str="); scanf("%s", str); s0=("()"); s=1.0; { for (i=1.0; i<n; i++) { s2=s1[i]; s3=s1[i+1]; s4=s1[i+2]; if (s2==s3) s++; if (s3<>s4) { if (s>2) { str(s, s5); insert(s5, s0, 2); s6=concat(s6, s0); s0=("()"); s=1.0; } s6=concat(s6,s2) } { if (s2<>s3) { s6=concat(s6,s2); s=1.0; } } } } printf("Target data: ", s6); }
Решение задачи: «В заданной строке заменить все последовательности одинаковых символов длиной более двух на конструкцию»
textual
Листинг программы
#include <stdio.h> #include <string.h> int main() { const char *in = "abbcdddeeffffghh"; int len = strlen(in), i = 0, j = 0, found = 0, count = 0; char out[30]; for (; i<len-2; i++) { if(in[i] == in [i+1] && in[i+1] == in [i+2]) { if(!found) { found = 1; count = 3; } else count++; } else { if(found) { out[j++] = '('; out[j++] = count + 48; out[j++] = ')'; found = count = 0; } else out[j++] = in[i]; } } if (!found) { out[j++] = in[i]; out[j++] = in[i+1]; } else { out[j++] = '('; out[j++] = count + 48; out[j++] = ')'; out[j++] = in[i]; } out[j] = '\0'; puts(out); getchar(); return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д