新聞中心
用C語言指針實現(xiàn)字符串壓縮
#includestdio.h
創(chuàng)新互聯(lián)是一家以網(wǎng)絡(luò)技術(shù)公司,為中小企業(yè)提供網(wǎng)站維護(hù)、網(wǎng)站制作、做網(wǎng)站、網(wǎng)站備案、服務(wù)器租用、域名與空間、軟件開發(fā)、成都小程序開發(fā)等企業(yè)互聯(lián)網(wǎng)相關(guān)業(yè)務(wù),是一家有著豐富的互聯(lián)網(wǎng)運營推廣經(jīng)驗的科技公司,有著多年的網(wǎng)站建站經(jīng)驗,致力于幫助中小企業(yè)在互聯(lián)網(wǎng)讓打出自已的品牌和口碑,讓企業(yè)在互聯(lián)網(wǎng)上打開一個面向全國乃至全球的業(yè)務(wù)窗口:建站歡迎聯(lián)系:13518219792
#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個字符,保存字?jǐn)?shù)不超過32個。。。。。在win_tc中通過……
c語言字符串如何壓縮
話說B數(shù)組不應(yīng)該是整形呀,不然不能保存字母了。以下是我的代碼。。。
#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語言求助:請編寫一個字符串壓縮程序,將字符串中連續(xù)出席的重復(fù)字母進(jìn)行壓縮,并輸出壓縮后的字符串。
#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語言實現(xiàn)字符串的壓縮。
/*
原串:?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語言字符串壓縮函數(shù) C語言串壓縮
文章源于:http://fisionsoft.com.cn/article/hgjgoh.html