All pastes #979239 Raw Edit

Stuff

public c v1 · immutable
·published 2008-04-10 05:13 UTC
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]);				if(strlen(argv[2]) == 1)				{					table[temp] = argv[2][0];				}				else				{					table[temp] = getNextChar(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;}