Sample code for 30+ languages & platforms
Unicode C++

Compress and Decompress a String

See more Compression Examples

Demonstrates how to compress and decompress a string.

Chilkat Unicode C++ Downloads

Unicode C++
#include <CkStringBuilderW.h>
#include <CkCompressionW.h>
#include <CkByteData.h>

void ChilkatSample(void)
    {
    bool success = false;

    //  This example assumes the Chilkat API to have been previously unlocked.
    //  See Global Unlock Sample for sample code.

    CkStringBuilderW sb;

    int i;
    for (i = 1; i <= 20; i++) {
        sb.Append(L"This is the original uncompressed string.\r\n");
    }

    CkCompressionW compress;
    compress.put_Algorithm(L"deflate");
    //  Indicate that the utf-8 byte representation of the string should be compressed.
    compress.put_Charset(L"utf-8");

    CkByteData compressedBytes;
    success = compress.CompressString(sb.getAsString(),compressedBytes);

    //  If the compressed data is desired in string format, then get the base64 representation of the bytes.
    compress.put_EncodingMode(L"base64");
    const wchar_t *compressedBase64 = compress.compressStringENC(sb.getAsString());
    wprintf(L"Compressed Bytes as Base64: %s\n",compressedBase64);

    //  Now decompress...
    const wchar_t *decompressedString = compress.decompressString(compressedBytes);
    wprintf(L"The original string after decompressing from binary compressed data:\n");
    wprintf(L"%s\n",decompressedString);

    //  To decompress from Base64...
    compress.put_EncodingMode(L"base64");
    decompressedString = compress.decompressStringENC(compressedBase64);
    wprintf(L"The original string after decompressing from Base64:\n");
    wprintf(L"%s\n",decompressedString);
    }