C
C
Compress and Decompress a String
See more Compression Examples
Demonstrates how to compress and decompress a string.Chilkat C Downloads
#include <C_CkStringBuilder.h>
#include <C_CkCompression.h>
#include <C_CkByteData.h>
void ChilkatSample(void)
{
BOOL success;
HCkStringBuilder sb;
int i;
HCkCompression compress;
HCkByteData compressedBytes;
const char *compressedBase64;
const char *decompressedString;
success = FALSE;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
sb = CkStringBuilder_Create();
for (i = 1; i <= 20; i++) {
CkStringBuilder_Append(sb,"This is the original uncompressed string.\r\n");
}
compress = CkCompression_Create();
CkCompression_putAlgorithm(compress,"deflate");
// Indicate that the utf-8 byte representation of the string should be compressed.
CkCompression_putCharset(compress,"utf-8");
compressedBytes = CkByteData_Create();
success = CkCompression_CompressString(compress,CkStringBuilder_getAsString(sb),compressedBytes);
// If the compressed data is desired in string format, then get the base64 representation of the bytes.
CkCompression_putEncodingMode(compress,"base64");
compressedBase64 = CkCompression_compressStringENC(compress,CkStringBuilder_getAsString(sb));
printf("Compressed Bytes as Base64: %s\n",compressedBase64);
// Now decompress...
decompressedString = CkCompression_decompressString(compress,compressedBytes);
printf("The original string after decompressing from binary compressed data:\n");
printf("%s\n",decompressedString);
// To decompress from Base64...
CkCompression_putEncodingMode(compress,"base64");
decompressedString = CkCompression_decompressStringENC(compress,compressedBase64);
printf("The original string after decompressing from Base64:\n");
printf("%s\n",decompressedString);
CkStringBuilder_Dispose(sb);
CkCompression_Dispose(compress);
CkByteData_Dispose(compressedBytes);
}