字符串压缩函数c语言 C语言串压缩
c语言字符串如何压缩
话说B数组不应该是整形呀,不然不能保存字母了。以下是我的代码。。。
网站设计制作、网站建设服务团队是一支充满着热情的团队,执着、敏锐、追求更好,是创新互联的标准与要求,同时竭诚为客户提供服务是我们的理念。成都创新互联把每个网站当做一个产品来开发,精雕细琢,追求一名工匠心中的细致,我们更用心!
#include iostream
#include string.h
#include stdio.h
using namespace std;
void yasuo(char a[],char b[])
{
int count=1,p=0;
for(int i=0; istrlen(a); i++)
if(a[i]==a[i+1])
count++;
else if(count2)
{
b[p++]=(char)(count+'0');
b[p++]=a[i];
count=1;
}
else if(count==2)
{
b[p++]=a[i];
b[p++]=a[i];
count=1;
}
else
b[p++]=a[i];
}
void printB(char b[])
{
coutbendl;
}
void backB(char b[])
{
for(int i=0; istrlen(b); i++)
if(b[i]='9'b[i]='3')
{
for(int j=0; j(int)(b[i]-'0'); j++)
coutb[i+1];
i++;
}
else
coutb[i];
coutendl;
}
int main()
{
char a[1000]= {0},b[1000]= {0};
gets(a);
yasuo(a,b);
printB(b);
backB(b);
}
C++编写一个字符串压缩函数,使字符串中重复出现的字符压缩为一个,并输出删除字符的个数
#includestdio.h
int compress(char s[])
{ int i,j,k,n,a[127]= {0};
for(i=0; s[i]; i++)a[s[i]]++;
n=i;
for(i=0; s[i]; i++)
{if(a[s[i]]1)
for(k=i,j=i+1; s[k]; j++)
if(s[i]!=s[j])s[++k]=s[j];
}
return n-i;
}
int main()
{ char s[100];
int i,count;
gets(s);
count=compress(s);
puts(s);
printf("删除字符:%d个\n",count);
return 0;
}
用C语言指针实现字符串压缩
#includestdio.h
#define MAX_NUM 32int main()
{ char *p,str[60];
int i,j=0;
static int num[26];
p=(char*)malloc(MAX_NUM*sizeof(char));
gets(str);
for(i=0;str[i];i++)
{ if(str[i]==' ') p[j++]=str[i];
else {
if(num[str[i]-97]==0||num[str[i]-97]==2||num[str[i]-97]==5)
{ p[j++]=str[i]; num[str[i]-97]++;}
else num[str[i]-97]++;
} }
for(i=0;ij;i++)
putchar(p[i]);
getch();
return 0;
}注:输入的为小写字母,而且句子长度不超过60个字符,保存字数不超过32个。。。。。在win_tc中通过……
C语言求助:请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。
#include stdio.h
void stringZip(const char
*pInputStr, long lInputLen, char *pOutputStr)
{ int n=1;
char c,*p1=pInputStr,*p2=pOutputStr;
while(*p1)
{
c=*(p1++);
while(*p1==c){n++;p1++;}
if(n1)
{
if(n999){*(p2++)=48+n/1000; n/=10;}
if(n99){*(p2++)=48+n/100; n/=10;}
if(n9){*(p2++)=48+n/10; n/=10;}
*(p2++)=48+n;
}
*(p2++)=c;
n=1;
}
*p2='\0';
}
void main()
{ char s1[200],s2[200];
gets(s1);
stringZip(s1,strlen(s1),s2);
puts(s2);
}
使用C语言实现字符串的压缩。
/*
原串: 111225555
压缩后: 312245
原串: 333AAAbbbb
压缩后: 333A4b
原串: ASXDCdddddd
压缩后: 1A1S1X1D1C6d
Press any key to continue
*/
#include stdio.h
#include string.h
char *CompressStr(char s[]) {
char t[255];
int i = 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] = '\0';
strcpy(s,t);
return s;
}
int main(void) {
char i,s[][20] = {"111225555","333AAAbbbb","ASXDCdddddd"};
for(i = 0; i 3; ++i) {
printf("原串: %s\n",s[i]);
printf("压缩后: %s\n",CompressStr(s[i]));
}
return 0;
}
当前文章:字符串压缩函数c语言 C语言串压缩
网站路径:http://myzitong.com/article/doosdcj.html