Ⅰ c語言鏈表實現字元串壓縮, 求大神幫助啊,跪謝。...
/*
請輸入表達式:11222335556444444222
21322335166432
請輸入表達式:1BBBBB3AAA3BBB
115B133A133B
請輸入表達式:
請輸入表達式:^Z
Press any key to continue
*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedefstructstack{
charch;
intsize;
structstack*next;
}*STACK,NODE,*pNode;
STACKInitStack(){
STACKS=(pNode)malloc(sizeof(NODE));
S->ch=0;
S->size=0;
S->next=NULL;
returnS;
}
intEmpty(STACKS){
returnS->next==NULL;
}
intNotEmpty(STACKS){
returnS->next!=NULL;
}
boolGetTop(STACK飢悄S,char&c){
if(Empty(S))returnfalse;
c=S->next->ch;
returntrue;
}
voidPush(STACKS,chare){
charc;
pNodenewnode=(pNode)malloc(sizeof(NODE));
if(GetTop(S,c)&&c==e){
++S->next->size;
return;
}
newnode->ch=e;
newnode->size=1;
newnode->next=S->next;
S->next=newnode;
}
boolPop(STACKS,char&ch,int&size){
pNodep;
if(Empty(S))returnfalse;
p=S->next;
ch=p->ch;
size=p->size;
S->next=p->next;
free(p);
returntrue;
}
intmain(){
STACKS=InitStack();
charexpression[100],*p,c;
intlen,i,sz;
printf("請輸入表達式爛漏渣:");
while(gets(expression)!=NULL){
len=strlen(expression);
p=expression+len-搜梁1;
for(i=len-1;i>=0;--i,--p)Push(S,*p);
while(Pop(S,c,sz))printf("%d%c",sz,c);
printf(" 請輸入表達式:");
}
return0;
}
Ⅱ c語言 怎麼轉換BCD碼和字元串 相互轉換 壓縮和非壓縮都說說怎麼弄
MOV R2, #05H;非壓縮BCD碼\r\n MOV R3, #06H\r\n MOV A, R2 ;將R2傳給A\r\n SWAP A ;A的高低4位交換\r\n ORL A, R3 ;將R3與A或運算\r\n MOV R4, A ;運算後的值即壓縮碼\r\n\r\n關鍵是SWAP和ORL運算。
Ⅲ c語言a到z怎麼表示
c語言a到z表示的方法是C語言字元串快速壓縮演算法代碼通過鍵盤輸入一串小寫字母a到z組成的字元串。根據查詢公開相關信息得知,C語言是一門面向過程、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。
Ⅳ 下面的c語言字元串壓縮程序怎麼寫呀 輸入樣例 a5b3aba13b4 輸出: aaaaabbbabaaaaaaaaaaaaabbbb
#include <stdio.h>
#include <stdlib.h>//為了使用atoi函數派圓
#include <string.h>//為了使用strlen函塵薯塌數
int main(void)
{
char input[100], temp;
char *p = input;
int i, j, len, tempint;
printf("請輸入:");
scanf("%s", input);
len = strlen(input);
for (i=0; i<len; i++)
{
if (*p>='a' && *p<='z')
{
printf("%c", *p);
temp = *p;
p++;
}
else if (*p>=Ɔ' && *p<=Ə')
{
tempint = atoi(p);
for (j=1; j<tempint; j++)
printf("%c", temp);
while (*p>=Ɔ' &手旅& *p<=Ə')
p++;
}
}
return 0;
}
Ⅳ 使用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]='