Ⅰ 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]='