rendered paste body#include <stdio.h>#include <stdlib.h>#include <string.h>void checkParameters(int, char**);char getNextChar(char* string);int letterBump(char* string);void printResults(char* table);int main (int argc, char* argv[]){ char table[256]; char temp; int i = 0; checkParameters(argc, argv); if(argc == 3) { for(i = 0; i < 256; i++) { table[i] = i; } if(!strcmp(argv[1], "-d")) { while((temp = getNextChar(argv[2])) != 0) { argv[2] = argv[2] + letterBump(argv[2]); table[temp] = 0; } } else { while((temp = getNextChar(argv[1])) != 0) { argv[1] = argv[1] + letterBump(argv[1]); table[temp] = getNextChar(argv[2]); if(strlen(argv[2]) != letterBump(argv[2])) { argv[2] = argv[2] + letterBump(argv[2]); } } } printResults(table); } return 0;}/* Checks to make sure there are enough parameters */void checkParameters(int argc, char* argv[]){ switch(argc) { case 1: printf("tr: missing operand\n"); break; case 2: printf("tr: missing operand after '%s'\n", argv[1]); break; case 3: break; default: printf("tr: extra operand '%s'\n", argv[3]); break; } return;}/* Returns the first character. It will translate special characters. */char getNextChar (char* string){ if(string[0] == 0) { return 0; } if(string[0] == 92) { switch(string[1]) { case 92: return 92; break; case 't': return '\t'; break; case 'n': return '\n'; break; default: exit(1); break; } } return string[0];}/* Finds out if a special character was translated. */int letterBump(char* string){ if(string[0] == 92) { return 2; } return 1;}/* Prints the resulting translation */void printResults(char* table){ char temp; while((temp = getc(stdin)) != EOF) { if(table[temp] != 0) { printf("%c", table[temp]); } } return;}