PDA

View Full Version : سوال: تبديل zipبه unzip



paprika
سه شنبه 15 دی 1388, 21:02 عصر
با عرض سلام:
s1:aaaa b 3444444 de fqn
zip:"4a" b 3"6"4 de fqn
un zip:aaaa b 3444444 de fqn
يك رشته را دريافتunzipرا بهzipتبديل كند؟:متفکر:
ممنون ميشم1 نفر جوابمو بده.
با تشكر!

gh-reza
سه شنبه 15 دی 1388, 22:40 عصر
تا کد ننویسی کدنویس نمیشی


#include <stdio.h>
#include <conio.h>
#define max 100
struct alfabet_english{
int strn[max];
char str2[max];
} alef;

main()
{
register int i;
int j,flag=1,p=0;
char ch,str1[100];
clrscr();
for(i=0;i<max;i++)
{
alef.strn[i]=0;
alef.str2[i]=' ';
str1[i]=' ';
}
printf("\nEnter string :");
gets(str1);
for(i=0;i<max;i++)
{
for(j=0;j<max;j++)
{
flag=1;
if(alef.str2[j]==str1[i])
{
flag=0;
break;
}//IF
} //FOR :J
if(flag!=0)
{
alef.str2[p]=str1[i];
p++;
flag=1;
}//IF
}//FOR:I
printf("%s",alef.str2);
getch();
for(i=0;i<p;i++)
if(alef.str2[i]=='\0')
{
p=i-1;
break;
}
for(i=0;i<=p;i++)
for(j=0;j<max;j++)
if(alef.str2[i]==str1[j])
alef.strn[i]++;
printf("\n");
for(i=0;i<=p;i++)
printf("%d%c",alef.strn[i],alef.str2[i]);
getch();
return 0;
}

tdkhakpur
سه شنبه 15 دی 1388, 22:49 عصر
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <dos.h>
void zip(char *srcstr, char *trgtstr)
{
int len, c=0;
len = strlen(srcstr);
trgtstr[c] = 1;
trgtstr[c+1] = srcstr[0];
for(int i=1; i<len; i++)
if( trgtstr[c+1] == srcstr[i] ) trgtstr[c] ++;
else{
c+=2;
trgtstr[c] = 1;
trgtstr[c+1] = srcstr[i];
}
}
void unzip(char *srcstr, char *trgtstr)
{
int len, c=0;
len = strlen(srcstr);
for(int i=0; i<len; i+=2)
for(int j=0; j<srcstr[i]; j++)
trgtstr[C++‎] = srcstr[i+1];
}
int main()
{
char *text={"aaa qb bbb 6544 "};
char trgtstr[64];
zip(text, trgtstr);
cout<<"\n zip buffer is :";
for(int i=0; i<strlen(trgtstr); i++)
cout<<trgtstr[i];
unzip(trgtstr , text);
cout<<"\n unzip is :";
for(int i=0; i<strlen(text); i++)
cout<<text[i];
getch();
return 0;
}

میتوانید ارتقا بدید.