PTA(Basic Level) 1078:字符串压缩与解压(C语言实现) #include <stdio.h> #include <string.h> #include <ctype.h> void compress(char s[]) { int i,count=1,n; n=strlen(s); for(i=1; i<=n; i++)//i<=n,最后一个字母也要输出 { while(s[i] == s[i-1]) { count++; i++; } if(count > 1)//count=1不输出 printf("%d",count); printf("%c",s[i-1]); count=1; } } void decompress(char s[]) { int i,j,sum; for(i=0; s[i]; i++) { sum=0;//计数 while(isdigit(s[i])) { sum=sum*10+(s[i]-'0'); i++; } if(sum > 0) for(j=0; j<sum; j++) printf("%c",s[i]); else printf("%c",s[i]); } } int main() { char ch,s[1001]=""; ch=getchar(); getchar();//消耗回车 gets(s); if(ch == 'C') compress(s); else decompress(s); return 0; }