Описать функцию DecompressStr(S) строкового типа, Восстанавливающую строку, сжатую процедурой CompressStr . Параметр S содержит cжатую строку; восстановленная строка является возвращаемым значением функции. С помощью функции DecompressStr восстановить пять данных строк.
вот код для CompressStr.
Код | #include<conio.h> #include<iostream.h> #include<stdlib.h> #include <string.h>
char CompresStr(char *s){ int kol=1;
for(int i=1;i<=strlen(s);i++){char s1[100]="",s2[100]="",s3[10]="{"; if(s[i]==s[i-1])kol++;else{ if (kol>4){ int j=kol,k=0; while(j!=0){j=j/10;k++;} j=kol; for(int l=k;l>0;l--){s3[l]=j%10+48;j=j/10;} s3[k+1]='}'; strncat(s1,s,i-kol+1); strncat(s1,s3,4); k=0;j=i; while(s[j]!='\0'){s2[k]=s[j]; j++;k++;} strncat(s1,s2,k+2); strcpy(s,s1); i=i-kol+4;} kol=1;}} return *s; }
void main(){ clrscr();randomize(); char s[10]="bbbcccccce"; cout<<"Данн массив\n"; cout<<s; cout<<'\n'; CompresStr(s); cout<<s<<endl; getch(); }
|
помогите пожалуйста!!! |