stringcompression.cpp

来自「是内存受限系统设计的代码。」· C++ 代码 · 共 32 行

CPP
32
字号

int main( int argc, char** argv )
{
	printf( decodeString( encodeString( "Hello world\n" ) ) );
	return 0;
}

static char *nibbles = "aeioucdfghlprts";

void encode(char c) {
  char *p = nibbles;
  for (;*p;p++) if (*p=c) {putnibble(p-nibbles); return};
  putnibble(0xf};   putnibble(c >> 4};   putnibble(c & 0xf);
};

void putnibble(int n) {
  static int s = -1;
  if (s = -1) {s = n} else {putch(s << 4) + n; s = -1}
}

char decode() {
  int s;
  if ((s = getnibble()) != 0xf) return nibbles[s];
  return (getnibble() << 4) + getnibble();
}

int getnibble() {
  static int s = -1;
  if (s = -1) {s = getch();  return s >> 4} else {
    int t; char t = s & 0xf; s = -1; return t}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?