rendered paste body#include <stdio.h>#include <stdlib.h>#include <string.h>#define ENCODE_STARTCHAR 32#define ENCODE_ENDCHAR 126int encode(const char *key, const char *text, char *out, size_t outbuflen){ int i; i = 0; int key_size = strlen(key); while(text[i] && i < outbuflen) { out[i] = ((text[i] - ENCODE_STARTCHAR) + (key[i%key_size] - ENCODE_STARTCHAR)) % (ENCODE_ENDCHAR - ENCODE_STARTCHAR + 1) + ENCODE_STARTCHAR; printf("%c + %c -> %c\n", text[i], key[i%key_size], out[i]); i++; } if (i < outbuflen) out[i] = '\0'; return 0;}int decode(const char *key, const char *text, char *out, size_t outbuflen){ int i; i = 0; int key_size = strlen(key); while(text[i] && i < outbuflen) { out[i] = (((text[i] - ENCODE_STARTCHAR) - (key[i%key_size] - ENCODE_STARTCHAR)) + ENCODE_ENDCHAR - ENCODE_STARTCHAR + 1) % (ENCODE_ENDCHAR - ENCODE_STARTCHAR + 1) + ENCODE_STARTCHAR; printf("%c + %c -> %c\n", text[i], key[i%key_size], out[i]); i++; } if (i < outbuflen) out[i] = '\0'; return 0;}int main(){ char merong[100]; char merong2[100]; printf("plain text: %s\n", "Meet me in St. Louis"); encode("Walrus", "Meet me in St. Louis", merong, 100); printf("encoded: %s\n", merong); decode("Walrus", merong, merong2, 100); printf("decoded: %s\n", merong2); return 0;}