当前位置:首页 » 文件管理 » 压缩字符串

压缩字符串

发布时间: 2022-02-09 08:13:30

❶ 字符串解压缩

刚才编成了压缩的程序,不好意思,现在的可以解压了。
程序没有给你编写读写文件的内容,文件读写自已去编,那个相对就简单了,程序只介绍了实现基本功能的内容。你可以输入3A4B7D测试。
void
main()
{int
m=0;int
j=0;
//string
a;
//char
c[111];
char
a[111];
char
b[111];
scanf("%s",a);
for(int
i=0;a[i]!='\0';i++)
{
cout<<"a"<
1&&a[i]-'0'<9)
{
m=a[i]-'0';}
else{b[j]=a[i];j++;}
while(m>1)
{
b[j]=a[i+1];
j++;
m--;
}
}
cout<
评论
0
0
0
加载更多

c语言字符串如何压缩

话说B数组不应该是整形呀,不然不能保存字母了。以下是我的代码。。。

#include<iostream>

#include<string.h>

#include<stdio.h>

usingnamespacestd;


voidyasuo(chara[],charb[])

{

intcount=1,p=0;

for(inti=0;i<strlen(a);i++)

if(a[i]==a[i+1])

count++;

elseif(count>2)

{

b[p++]=(char)(count+'0');

b[p++]=a[i];

count=1;

}

elseif(count==2)

{

b[p++]=a[i];

b[p++]=a[i];

count=1;

}

else

b[p++]=a[i];

}

voidprintB(charb[])

{

cout<<b<<endl;

}

voidbackB(charb[])

{

for(inti=0;i<strlen(b);i++)

if(b[i]<='9'&&b[i]>='3')

{

for(intj=0;j<(int)(b[i]-'0');j++)

cout<<b[i+1];

i++;

}

else

cout<<b[i];

cout<<endl;

}

intmain()

{

chara[1000]={0},b[1000]={0};

gets(a);

yasuo(a,b);

printB(b);

backB(b);

}

❸ 字符串压缩 C#

唔.0 分,给你提示好了。

首先不推荐压缩字符串,基于“时间换空间”或者“空间换时间”的程序设计定律,相对压缩后得到的内存空间,浪费的CPU开销比较起来得不偿失。尤其是string这一特殊引用类型。

硬要体验的话,可以尝试使用Encoding,将字符串转换为byte流,对byte流压缩后保存。

❹ 压缩字符串

#include<stdio.h>
int compress(char s[])
{
int n,k=0,count=0;
if(s[0]!=NULL)n=k+1;
while(s[n]!=NULL)
{
if(s[k]==s[n])
{n++;count++;}
else{s[++k]=s[n];n++;}
}
s[++k]='\0';
return count;
}

main()
{char num[100];
int count=0;
FILE *fp;
fp=fopen("e:\\12\\myf3.out","w");
gets(num);
count=compress(num);
fprintf(fp,"%s",num);
printf("%d",count);
fclose(fp);}
是不是还要输学号啊#109

❺ 用java如何实现压缩字符串

package javase1.day02;
/**
* 1)一种字符串压缩算法
* str ="aaaabbccccddeaaa"
* 压缩为:"4a2b4c2d1e3a"
* 原理实现:
* str = "aaaabbccccddeaaa"
*
* c = str.charAt(i)//c是每个字符
* 1) 初始化
* StringBuilder buf = new StringBuilder();
* int count = 0;代表相同的字符个数
* char ch = str.charAt(0);代表正在统计的相同字符'a'
* 2) 从i=1开始迭代每个字符
* c = str.charAt(i);//c是每个当前字符
* 3) 检查当前字符c与被统计ch是否一致
* 如果一致 count++
* 否则(不一致)
* 向缓冲区buf增加count+ch
* count=0,ch=c;
* 3)没有下个字符就结束
* 4)还有字符串吗?回到2)
*
* 2)实现还原算法
* str = "4a2b4c2d1e3a";
* i
*/
public class Demo5 {
public static void main(String[] args) {
String s = comp("aaaawwwwe");
System.out.println(s);
// System.out.println(decomp(s));

}
public static String comp(String str){
int i = 1;
StringBuilder buf = new StringBuilder();
int count = 1;
char ch = str.charAt(0);
for(;;){
char c = i==str.length() ? '\10':str.charAt(i);
if(c==ch){
count++;
}else{
if(count == 1)
buf.append(ch);
else
buf.append(count).append(ch);
count=1;
ch = c;
}
i++;
if(i==str.length()+1){
break;
}
}
return buf.toString();

}
}

❻ c++怎么压缩字符串

一个个读入字符,记住当前一个和上一个
如果当前和上一个相同,计数加一
不同那么把上一个和计数放入结果字符串,上一字符值替换成当前,计数设置为1
接收到换行或者eof时结束程序并输出

❼ 字符串如何压缩

去网上搜索免费代码,这年代还自己写通用代码,又浪费时间又浪费精力————前提,别拿别人的免费代码做商业用途。

❽ js Gzip前台压缩字符串如何实现

public class Trans {

public void printNum(int num){
System.out.print(Thread.currentThread());//获取当前运行这个方法的类
for(int i=0;i<25;i++){
System.out.print(i+" ");
}
System.out.println();
}
}

linux压缩字尾字符串是什么

能说清楚点么

❿ 使用C语言实现字符串的压缩。

/*
原串:111225555
压缩后:312245
原串:333AAAbbbb
压缩后:333A4b
原串:ASXDCdddddd
压缩后:1A1S1X1D1C6d
Pressanykeytocontinue
*/
#include<stdio.h>
#include<string.h>

char*CompressStr(chars[]){
chart[255];
inti=0,j,k=0;
while(s[i]){
j=i+1;
while(s[i]==s[j])++j;
t[k++]=j-i+'0';
t[k++]=s[i];
i=j;
}
t[k]='';
strcpy(s,t);
returns;
}

intmain(void){
chari,s[][20]={"111225555","333AAAbbbb","ASXDCdddddd"};
for(i=0;i<3;++i){
printf("原串:%s ",s[i]);
printf("压缩后:%s ",CompressStr(s[i]));
}
return0;
}

热点内容
ibatis源码 发布:2024-10-24 06:22:53 浏览:608
江苏税务UK版式文件服务器地址 发布:2024-10-24 06:21:24 浏览:585
存储DRAM 发布:2024-10-24 06:21:22 浏览:448
没有微信密码怎么登 发布:2024-10-24 06:21:22 浏览:132
阿里云服务器上的ip可以修改不 发布:2024-10-24 06:21:14 浏览:135
Linux下安装win10 发布:2024-10-24 06:11:11 浏览:868
手机的sim的密码是多少 发布:2024-10-24 06:10:25 浏览:508
手机访问xp 发布:2024-10-24 06:00:56 浏览:187
剪辑英雄联盟需要什么配置 发布:2024-10-24 05:54:46 浏览:516
守望先锋脚本是什么意思 发布:2024-10-24 05:54:46 浏览:504