Все вроде бы сделал, кроме 1 НО. Когда я ввожу например: asdcccccccngdddddddddddddnh он выдает asdc{7}ngd{13} nh, т.е. он не сдвигает до '}'.
Подскажите как сдвинуть оставшиеся элементы.
Код:
char CompressStr(char s[256])
{
int k=0,dls = strlen(s),i,j,dls1=0,t,ch;
char s1[20],sres[256]="",fix[1]="";
for (i=0;i<dls;i++)
if (s[i] == s[i+1])
{ fix[0] = s[i];
k=0;
for (j=i;s[j]==fix[0];j++)
k=k+1;
if (k>=4)
{
sprintf (s1,"%c{%d}",s[i],k);
strcat(sres,s1);
i = i + k-1;
dls1 = strlen(s1);
fix[0]=' ';
}
else
{sres[i]=s[i];
fix[0]=' ';
k=0;}}
else
{ sres[i-k+dls1] = s[i];
for (t=i;sres[t-1]==0 && sres[t] != 0;t++)
{
sres[t-k+dls1]=s[t];
sres[t] = 0;
}
}
printf ("%d",k);
printf ("\n");
for (int lpa=0;lpa<dls;lpa++)
printf ("%c",sres[lpa]);
return sres[256];
}