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

c语言字符串压缩

发布时间: 2022-06-06 13:24:22

‘壹’ 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语言实现字符串的压缩。

/*
原串: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;
}

‘叁’ 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语言,如何解压缩字符串,例如:a12g5y8,反解压后变成aaaaaaaaaaaagggggyyyyyyyy,,求代码,谢谢

#include<stdio.h>

voidstrjieya(charsrc[],charres[])
{
intsrc_pos=0;
intres_pos=0;
intchar_num=0;
inti;
while(src[src_pos]!=0)
{
if(src[src_pos]<'0'||src[src_pos]>'9')
{
res[res_pos]=src[src_pos];
src_pos++;
res_pos++;
}
else
{
sscanf(&src[src_pos],"%d",&char_num);
char_num=char_num-1;//因为上面已经放进去一个了
for(i=0;i<char_num;i++)
{
res[res_pos]=src[src_pos-1];
res_pos++;
}
while(src[src_pos]>='0'&&src[src_pos]<='9')
{
src_pos++;
}
}
}
res[res_pos]=0;
}

intmain()
{
chara[]="a12g5y8";
charb[1000];
strjieya(a,b);
printf("%s ",a);
printf("%s ",b);
return0;
}

结果:
a12g5y8
aaaaaaaaaaaagggggyyyyyyyy
Pressanykeytocontinue

‘伍’ c语言 压缩字符串:如AABBCCDDDD,输出2A2B2C4D,用C语言,求问

#include<stdio.h>
#include<string.h>
void
main()
{
char
s[51];
int
i=0,j=1;
printf("请输入一个长度不超过五十的字符串(否则会越界出错):\n");
scanf("%s",s);
if(strlen(s)>50){
printf("输入不合要求!");
return;
}
while(i<strlen(s))
{
//j用于统计重复的字母个数
if(s[i]==s[i+1])
j++;
else{
printf("%d%c",j,s[i]);
j=1;//j重新计数
}
i++;
}
printf("\n");
}
不好意思昨晚写的,没仔细看,有错误。

‘陆’ 下面的c语言字符串压缩程序怎么写呀 输入样例 a5b3aba13b4 输出: aaaaabbbabaaaaaaaaaaaaabbbb

#include <stdio.h>
#include <string.h>
void main()
{
char s[80];
int n=0,i=0,j;
printf("请输入字符串:");
gets(s);
if(strlen(s)%2!=0)
{
printf("输入有误!");
return;
}
for(i=0;s[i]!='\0';i+=2)
{
for(j=1;j<=s[i+1]-48;j++)
printf("%c",s[i]);
}
printf("\n");
}

‘柒’ C语言链表实现字符串压缩, 求大神帮助啊,跪谢。...

#include <stdio.h>
typydef struct ch
{
char c;//字符

int num;//字符个数

}Ch;
typedef struct list
{
Ch cha;

Ch *next;

}List;
void main()//以“aaaaabbbbbb”为例

{
List *head; //头结点
List *l = (List*)malloc(sizeof(List));

l->cha.c = a;

l->cha.num = 5;

head =l;

l ->next= (List*)malloc(sizeof(List));
l = l->next;

l->cha.c = b;

l->cha.num = 6;

l->next =NULL;

l = head;

while(l != NULL)

{
for(int i =0; i< l->cha.num;i++)

printf("%c");

l = l->next;

}

}

热点内容
pdf压缩文件大小 发布:2025-01-21 04:40:24 浏览:798
linux解压文件到指定 发布:2025-01-21 04:38:36 浏览:874
自己做的安卓app怎么下载 发布:2025-01-21 04:35:07 浏览:163
机顶盒加密频道 发布:2025-01-21 04:26:48 浏览:318
腾讯应用加密 发布:2025-01-21 04:24:38 浏览:988
无法访问f 发布:2025-01-21 04:24:36 浏览:539
sql实时 发布:2025-01-21 04:24:27 浏览:998
怎么在linux服务器上配ip地址 发布:2025-01-21 04:22:10 浏览:251
咖搭姆编程 发布:2025-01-21 04:19:45 浏览:674
python27linux安装 发布:2025-01-21 04:13:12 浏览:264