/*0-------------------------------------------------------------------------------------------0*\
0									  			0
|									  			|
|									  			|
|									  			|
|  Coded by Gjoko 'LiquidWorm' Krstic								|
|									  			|
|  e-mail: liquidworm [t00t] gmail.com						  		|
|  Web: http://www.zeroscience.org/					  			|
|  MSN: m1Xx3r@hotmail.com						  			|
|  Date: 13.09.2008 (dd-mm-yyyy)					  			|
|  Name of program: CoolCon v0.2					  			|
|  Name of file: CoolCon02.c						  			|
|  Interface: command-line						  			|
|  Compiler used: gcc version 3.4.5 (mingw-vista special r3)	 	  			|
|  Description: Converter, binary/octal/decimal/hexadecimal/ascii/rot13/URL Unicode UTF-8	|
|  									  			|
|  									  			|
|									  			|
|									  			|
0									  			0
\*0-------------------------------------------------------------------------------------------0*/


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

	
	void welcome(void);
	void what2what(void);
	void choose_string(void);
	void choose_number(void);
	void char2bin(void);
	void char2oct(void);
	void char2hex(void);
	void char2ascii(void);
	void char2unicode(void);
	void rot13(void);
	void asciialpha(void);
	void base64alpha(void);
	void dec2bin(void);
	void dec2oct(void);
	void dec2hex(void);
	int binary2dec();
	int bin2dec(char *bin);
	int bin2oct();
	int bin2hex();



unsigned char text[256];
int broj;
char str[256];
int duzina, red, n;


void welcome()
{

	printf("\n\n================================================================================\n\n");
	printf("\t ____                    ___    ____                       \n");
	printf("\t/\\  _`\\                 /\\_ \\  /\\  _`\\                     \n");
	printf("\t\\ \\ \\/\\_\\    ___     ___\\//\\ \\ \\ \\ \\/\\_\\    ___     ___    \n");
	printf("\t \\ \\ \\/_/_  / __`\\  / __`\\\\ \\ \\ \\ \\ \\/_/_  / __`\\ /' _ `\\  \n");
	printf("\t  \\ \\ \\L\\ \\/\\ \\L\\ \\/\\ \\L\\ \\\\_\\ \\_\\ \\ \\L\\ \\/\\ \\L\\ \\/\\ \\/\\ \\ \n");
	printf("\t   \\ \\____/\\ \\____/\\ \\____//\\____\\\\ \\____/\\ \\____/\\ \\_\\ \\_\\\n");
	printf("\t    \\/___/  \\/___/  \\/___/ \\/____/ \\/___/  \\/___/  \\/_/\\/_/\n");
	printf("\n\n\n================================================================================\n");
	printf("\t\t\t\tCoolCon v0.2\n");
	printf("\t\t   by LiquidWorm <liquidworm [t00t] gmail.com>\n\n\n");
	printf("\t\t\t   (1) Text conversions\n");
	printf("\t\t\t   (2) Number conversions\n");
	printf("\t\t\t   (3) EXIT\n\n\n");
}


void what2what()
{
	char what;
	
	printf("\t\t\t\tPick a choice... ");
	what=getchar();
	if(what == '1')
	{
		choose_string();
		fflush(stdin);
	} else if(what == '2')
		{
			choose_number();
			fflush(stdin);
		} else if(what == '3')
			{
				exit(1);
			} else
				{
					printf("\n\t\t\t\t\aPlease choose 1 or 2.\n\n");
					fflush(stdin);
					return(what2what());
				}
}



void choose_number()
{
	char choicenum;
	
	fflush(stdin);
	printf("\n\n\t\t\tChoose an option number...\n\n\n");
	printf("\t\t\t  (1) Decimal  -->  Binary\n");
	printf("\t\t\t  (2) Binary   -->  Decimal\n");
	printf("\t\t\t  (3) Decimal  -->  Octal\n");
	printf("\t\t\t  (4) Binary   -->  Octal\n");
	printf("\t\t\t  (5) Binary   -->  Hexadecimal \n");
	printf("\t\t\t  (6) Decimal  -->  Hexadecimal\n");
	printf("\t\t\t  (7) Show ASCII table\n");
	printf("\t\t\t  (8) Show Base64 table\n");
	printf("\t\t\t  (9) Main Menu\n\n");
	
	choicenum=getchar();
	switch(choicenum)
	{
		case '1':
			printf("\n1. [ Decimal to Binary ]\n\n");
			dec2bin();
			fflush(stdin);
			
			while(choicenum != 'n' || choicenum != 'N')
			{
				fflush(stdin);
				printf("\n\nAnother conversion from Decimal to Binary (y/n)? ");
				fflush(stdin);
				choicenum=getchar();
				fflush(stdin);
				if(choicenum == 'y' || choicenum == 'Y')
				{ 
					fflush(stdin);
					dec2bin();
				}
				else if(choicenum == 'n' || choicenum == 'N')
					{
						return(choose_number());
					}
					else
						{
							printf("\n\n\t\aYes or No please.\n");
						}
			}
		case '2':
			printf("\n2. [ Binary to Decimal ]\n\n");
			binary2dec();
			fflush(stdin);
			
			while(choicenum != 'n' || choicenum != 'N')
			{
				fflush(stdin);
				printf("\n\nAnother conversion from Binary to Decimal (y/n)? ");
				fflush(stdin);
				choicenum=getchar();
				fflush(stdin);
				if(choicenum == 'y' || choicenum == 'Y')
				{ 
					fflush(stdin);
					binary2dec();
				}
				else if(choicenum == 'n' || choicenum == 'N')
					{
						return(choose_number());
					}
					else
						{
							printf("\n\n\t\aYes or No please.\n");
						}
			}
		case '3':
			printf("\n3. [ Decimal to Octal ]\n\n");
			dec2oct();
			fflush(stdin);
			
			while(choicenum != 'n' || choicenum != 'N')
			{
				fflush(stdin);
				printf("\n\nAnother conversion from Decimal to Octal (y/n)? ");
				fflush(stdin);
				choicenum=getchar();
				fflush(stdin);
				if(choicenum == 'y' || choicenum == 'Y')
				{ 
					fflush(stdin);
					dec2oct();
				}
				else if(choicenum == 'n' || choicenum == 'N')
					{
						return(choose_number());
					}
					else
						{
							printf("\n\n\t\aYes or No please.\n");
						}
			}
		case '4':
			printf("\n4. [ Binary to Octal ]\n\n");
			bin2oct();
			fflush(stdin);
			
			while(choicenum != 'n' || choicenum != 'N')
			{
				fflush(stdin);
				printf("\n\nAnother conversion from Binary to Octal (y/n)? ");
				fflush(stdin);
				choicenum=getchar();
				fflush(stdin);
				if(choicenum == 'y' || choicenum == 'Y')
				{ 
					fflush(stdin);
					bin2oct();
				}
				else if(choicenum == 'n' || choicenum == 'N')
					{
						return(choose_number());
					}
					else
						{
							printf("\n\n\t\aYes or No please.\n");
						}
			}
		case '5':
			printf("\n5. [ Binary to Hexadecimal ]\n\n");
			bin2hex();
			fflush(stdin);
			
			while(choicenum != 'n' || choicenum != 'N')
			{
				fflush(stdin);
				printf("\n\nAnother conversion from Binary to Hexadecimal (y/n)? ");
				fflush(stdin);
				choicenum=getchar();
				fflush(stdin);
				if(choicenum == 'y' || choicenum == 'Y')
				{ 
					fflush(stdin);
					bin2hex();
				}
				else if(choicenum == 'n' || choicenum == 'N')
					{
						return(choose_number());
					}
					else
						{
							printf("\n\n\t\aYes or No please.\n");
						}
			}
		case '6':
			printf("\n6. [ Decimal to Hexadecimal ]\n\n");
			dec2hex();
			fflush(stdin);
			
			while(choicenum != 'n' || choicenum != 'N')
			{
				fflush(stdin);
				printf("\n\nAnother conversion from Decimal to Hexadecimal (y/n)? ");
				fflush(stdin);
				choicenum=getchar();
				fflush(stdin);
				if(choicenum == 'y' || choicenum == 'Y')
				{ 
					fflush(stdin);
					dec2hex();
				}
				else if(choicenum == 'n' || choicenum == 'N')
					{
						return(choose_number());
					}
					else
						{
							printf("\n\n\t\aYes or No please.\n");
						}
			}
		case '7':
			asciialpha();
			fflush(stdin);
			printf("\n\nPress any key to continue...");
			getchar();
			return(choose_number());
		case '8':
			base64alpha();
			fflush(stdin);
			printf("\nPress any key to continue...");
			getchar();
			return(choose_number());
		case '9':
			fflush(stdin);
			welcome();
			what2what();
		default:
			printf("\n\aChoose between 1 - 8 please.\n");
			fflush(stdin);
			return(choose_number());
	}
}



void choose_string()
{
	char choicestring;

	fflush(stdin);
	printf("\n\n\t\t\tChoose an option number...\n\n\n");
	printf("\t\t\t  (1) Text  -->  ASCII\n");
	printf("\t\t\t  (2) Text  -->  Binary\n");
	printf("\t\t\t  (3) Text  -->  Octal\n");
	printf("\t\t\t  (4) Text  -->  Hexadecimal\n");
	printf("\t\t\t  (5) Text  -->  URL Unicode UTF-8\n");
	printf("\t\t\t  (6) ROT13\n");
	printf("\t\t\t  (7) Show ASCII table\n");
	printf("\t\t\t  (8) Show Base64 table\n");
	printf("\t\t\t  (9) Main Menu\n");

	choicestring=getchar();
	switch(choicestring)
	{
		case '1':
			printf("\n1. [ Text to ASCII ]\n\n");
			char2ascii();
			fflush(stdin);
			
			while(choicestring != 'n' || choicestring != 'N')
			{
				fflush(stdin);
				printf("\n\nAnother conversion from Text to ASCII (y/n)? ");
				fflush(stdin);
				choicestring=getchar();
				fflush(stdin);
				if(choicestring == 'y' || choicestring == 'Y')
				{ 
					fflush(stdin);
					char2ascii();
				}
				else if(choicestring == 'n' || choicestring == 'N')
					{
						return(choose_string());
					}
					else
						{
							printf("\n\n\t\aYes or No please.\n");
						}
			}
		case '2':
			printf("\n2. [ Text to Binary ]\n\n");
			char2bin();
			fflush(stdin);
			
			while(choicestring != 'n' || choicestring != 'N')
			{
				fflush(stdin);
				printf("\n\nAnother conversion from Text to Binary (y/n)? ");
				fflush(stdin);
				choicestring=getchar();
				fflush(stdin);
				if(choicestring == 'y' || choicestring == 'Y')
				{ 
					fflush(stdin);
					char2bin();
				}
				else if(choicestring=='n' || choicestring=='N')
					{
						return(choose_string());
					}
					else
						{
							printf("\n\n\t\aYes or No please.\n");
						}
			}
		case '3':
			printf("\n3. [ Text to Octal ]\n\n");
			char2oct();
			fflush(stdin);
			
			while(choicestring != 'n' || choicestring != 'N')
			{
				fflush(stdin);
				printf("\n\nAnother conversion from Text to Octal (y/n)? ");
				fflush(stdin);
				choicestring=getchar();
				fflush(stdin);
				if(choicestring == 'y' || choicestring == 'Y')
				{ 
					fflush(stdin);
					char2oct();
				}
				else if(choicestring == 'n' || choicestring == 'N')
					{
						return(choose_string());
					}
					else
						{
							printf("\n\n\t\aYes or No please.\n");
						}
			}
		case '4':
			printf("\n4. [ Text to Hexadecimal ]\n\n");
			char2hex();
			fflush(stdin);
			
			while(choicestring != 'n' || choicestring != 'N')
			{
				fflush(stdin);
				printf("\n\nAnother conversion from Text to Hexadecimal (y/n)? ");
				fflush(stdin);
				choicestring=getchar();
				fflush(stdin);
				if(choicestring == 'y' || choicestring == 'Y')
				{ 
					fflush(stdin);
					char2hex();
				}
				else if(choicestring=='n' || choicestring=='N')
					{
						return(choose_string());
					}
					else
						{
							printf("\n\n\t\aYes or No please.\n");
						}
			}
		case '5':
			printf("\n5. [ Text to URL Unicode-UTF8 ]\n\n");
			char2unicode();
			fflush(stdin);

			while(choicestring != 'n' || choicestring != 'N')
			{
				fflush(stdin);
				printf("\n\nAnother URL Unicode-UTF8 conversion (y/n)? ");
				fflush(stdin);
				choicestring=getchar();
				fflush(stdin);
				if(choicestring == 'y' || choicestring == 'Y')
				{ 
					fflush(stdin);
					char2unicode();
				}
				else if(choicestring=='n' || choicestring=='N')
					{
						return(choose_string());
					}
					else
						{
							printf("\n\n\t\aYes or No please.\n");
						}
			}
		case '6':
			printf("\n5. [ ROT13 ]\n\n");
			rot13();
			fflush(stdin);

			while(choicestring != 'n' || choicestring != 'N')
			{
				fflush(stdin);
				printf("\n\nAnother ROT13 conversion (y/n)? ");
				fflush(stdin);
				choicestring=getchar();
				fflush(stdin);
				if(choicestring == 'y' || choicestring == 'Y')
				{ 
					fflush(stdin);
					rot13();
				}
				else if(choicestring=='n' || choicestring=='N')
					{
						return(choose_string());
					}
					else
						{
							printf("\n\n\t\aYes or No please.\n");
						}
			}
		case '7':
			asciialpha();
			fflush(stdin);
			printf("\n\nPress any key to continue...");
			getchar();
			return(choose_string());
		case '8':
			base64alpha();
			fflush(stdin);
			printf("\nPress any key to continue...");
			getchar();
			return(choose_string());
		case '9':
			fflush(stdin);
			welcome();
			what2what();
		default:
			printf("\n\aPlease choose 1-8 please.\n");
			fflush(stdin);
			return(choose_string());
	}
}



void base64alpha()
{
	printf("\nShowing the Base64 alphabet ---------->\n");

	printf("\n\n 0 = 'A'\t"); printf(" 1 = 'B'\t");	printf(" 2 = 'C'\t"); printf(" 3 = 'D'\t");
	printf(" 4 = 'E'\t"); printf(" 5 = 'F'\t"); printf(" 6 = 'G'\t"); printf(" 7 = 'H'\t");
	printf(" 8 = 'I'\t"); printf(" 9 = 'J'\t"); printf("10 = 'K'\t"); printf("11 = 'L'\t");
	printf("12 = 'M'\t"); printf("13 = 'N'\t"); printf("14 = 'O'\t"); printf("15 = 'P'\t");
	printf("16 = 'Q'\t"); printf("17 = 'R'\t"); printf("18 = 'S'\t"); printf("19 = 'T'\t");
	printf("20 = 'U'\t"); printf("21 = 'V'\t"); printf("22 = 'W'\t"); printf("23 = 'X'\t");
	printf("24 = 'Y'\t"); printf("25 = 'Z'\t"); printf("26 = 'a'\t"); printf("27 = 'b'\t");
	printf("28 = 'c'\t"); printf("29 = 'd'\t"); printf("30 = 'e'\t"); printf("31 = 'f'\t");
	printf("32 = 'g'\t"); printf("33 = 'h'\t"); printf("34 = 'i'\t"); printf("35 = 'j'\t");
	printf("36 = 'k'\t"); printf("37 = 'l'\t"); printf("38 = 'm'\t"); printf("39 = 'n'\t");
	printf("40 = 'o'\t"); printf("41 = 'p'\t"); printf("42 = 'q'\t"); printf("43 = 'r'\t");
	printf("44 = 's'\t"); printf("45 = 't'\t"); printf("46 = 'u'\t"); printf("47 = 'v'\t");
	printf("48 = 'w'\t"); printf("49 = 'x'\t"); printf("50 = 'y'\t"); printf("51 = 'z'\t");
	printf("52 = '0'\t"); printf("53 = '1'\t"); printf("54 = '2'\t"); printf("55 = '3'\t");
	printf("56 = '4'\t"); printf("57 = '5'\t"); printf("58 = '6'\t"); printf("59 = '7'\t");
	printf("60 = '8'\t"); printf("61 = '9'\t"); printf("62 = '+'\t");
	printf("63 = '/'\t"); printf("\n\n");
	
	fflush(stdin);
}



void asciialpha()
{
	unsigned char a;

	printf("\nShowing the ASCII alphabet ---------->\n\n");

	for(a=32;a<128;a=a+1)
	{
		printf("%3d = '%c'\t",a,a);
	}
}



void char2bin()
{
	fflush(stdin);
	printf("\nEnter text: ");
	gets(text);
	fflush(stdin);
	duzina=strlen(text);
	printf("\"%s\" in binary is: \n\n", text);
	for(n=0;n<duzina;n++)
	{
		printf("%s ", itoa(text[n], str, 2));
	}
}



void char2oct()
{
	fflush(stdin);
	printf("\nEnter text: ");
	gets(text);
	fflush(stdin);
	duzina=strlen(text);
	printf("\"%s\" in Octal is: \n\n",text);
	for(n=0;n<duzina;n++)
	{
		printf("%s ", itoa(text[n], str, 8));
	}
}



void char2hex()
{
	fflush(stdin);
	printf("\nEnter text: ");
	gets(text);
	fflush(stdin);
	duzina=strlen(text);
	printf("\"%s\" in Hexadecimal is: \n\n",text);
	for(n=0;n<duzina;n++)
	{
		printf("%x ", text[n]);
	}
}



void char2ascii()
{
	fflush(stdin);
	printf("\nEnter text: ");
	gets(text);
	fflush(stdin);
	duzina=strlen(text);
	printf("\n\"%s\" in ASCII is: \n\n",text);
	for(n=0;n<duzina;n++)
	{
		printf("%d ",text[n]);
	}
	fflush(stdin);
}



void dec2bin()
{
	fflush(stdin);
	printf("\nEnter number: ");
	gets(text);
	fflush(stdin);
	broj=atoi(text);
	printf("\n%s in Binary is: ",text);
	printf("%s\n", itoa(broj, str, 2));
}



void dec2oct()
{
	fflush(stdin);
	printf("\nEnter number: ");
	gets(text);
	fflush(stdin);
	broj=atoi(text);
	printf("\n%s in Octal is: ",text);
	printf("%o\n",broj);
}



void dec2hex()
{
	fflush(stdin);
	printf("\nEnter number: ");
	gets(text);
	fflush(stdin);
	broj=atoi(text);
	printf("\n%s in Hexadecimal is: ",text);
	printf("%x\n",broj);
}



void char2unicode()
{
	fflush(stdin);
	printf("\nEnter text: ");
	gets(text);
	fflush(stdin);
	duzina=strlen(text);
	printf("\n%s in URL encoded Unicode UTF-8 is: \n\n",text);
	for(n=0;n<duzina;n++)
	{
		if(text[n] ==' ') printf("%\%u0020"); if(text[n] =='/') printf("%\%u2215"); if(text[n] =='\\') printf("%\%u2215");
		if(text[n] =='\'') printf("%\%u02b9"); if(text[n] =='"') printf("%\%u0022"); if(text[n] =='>') printf("%\%u003e");
		if(text[n] =='<') printf("%\%u003c"); if(text[n] =='#') printf("%\%uff03"); if(text[n] =='!') printf("%\%uff01");
		if(text[n] =='$') printf("%\%uff04"); if(text[n] =='*') printf("%\%uff0a"); if(text[n] =='@') printf("%\%u0040");
		if(text[n] =='.') printf("%\%uff0e"); if(text[n] =='_') printf("%\%uff3f"); if(text[n] =='(') printf("%\%uff08");
		if(text[n] ==')') printf("%\%uff09"); if(text[n] ==',') printf("%\%uff0c"); if(text[n] =='%') printf("%\%u0025");
		if(text[n] =='-') printf("%\%uff0d"); if(text[n] ==';') printf("%\%uff1b"); if(text[n] ==':') printf("%\%uff1a");
		if(text[n] =='|') printf("%\%uff5c"); if(text[n] =='&') printf("%\%uff06"); if(text[n] =='+') printf("%\%uff0b");
		if(text[n] =='=') printf("%\%uff1d"); if(text[n] =='a') printf("%\%uff41"); if(text[n] =='b') printf("%\%uff42");
		if(text[n] =='c') printf("%\%uff43"); if(text[n] =='d') printf("%\%uff44"); if(text[n] =='e') printf("%\%uff45");
		if(text[n] =='f') printf("%\%uff46"); if(text[n] =='g') printf("%\%uff47"); if(text[n] =='h') printf("%\%uff48");
		if(text[n] =='i') printf("%\%uff49"); if(text[n] =='j') printf("%\%uff4a"); if(text[n] =='k') printf("%\%uff4b");
		if(text[n] =='l') printf("%\%uff4c"); if(text[n] =='m') printf("%\%uff4d"); if(text[n] =='n') printf("%\%uff4e");
		if(text[n] =='o') printf("%\%uff4f"); if(text[n] =='p') printf("%\%uff50"); if(text[n] =='q') printf("%\%uff51");
		if(text[n] =='r') printf("%\%uff52"); if(text[n] =='s') printf("%\%uff53"); if(text[n] =='t') printf("%\%uff54");
		if(text[n] =='u') printf("%\%uff55"); if(text[n] =='v') printf("%\%uff56"); if(text[n] =='w') printf("%\%uff57");
		if(text[n] =='x') printf("%\%uff58"); if(text[n] =='y') printf("%\%uff59"); if(text[n] =='z') printf("%\%uff5a");
		if(text[n] =='A') printf("%\%uff21"); if(text[n] =='B') printf("%\%uff22"); if(text[n] =='C') printf("%\%uff23");
		if(text[n] =='D') printf("%\%uff24"); if(text[n] =='E') printf("%\%uff25"); if(text[n] =='F') printf("%\%uff26");
		if(text[n] =='G') printf("%\%uff27"); if(text[n] =='H') printf("%\%uff28"); if(text[n] =='I') printf("%\%uff29");
		if(text[n] =='J') printf("%\%uff2a"); if(text[n] =='K') printf("%\%uff2b"); if(text[n] =='L') printf("%\%uff2c");
		if(text[n] =='M') printf("%\%uff2d"); if(text[n] =='N') printf("%\%uff2e"); if(text[n] =='O') printf("%\%uff2f");
		if(text[n] =='P') printf("%\%uff30"); if(text[n] =='Q') printf("%\%uff31"); if(text[n] =='R') printf("%\%uff32");
		if(text[n] =='S') printf("%\%uff33"); if(text[n] =='T') printf("%\%uff34"); if(text[n] =='U') printf("%\%uff35");
		if(text[n] =='V') printf("%\%uff36"); if(text[n] =='W') printf("%\%uff37"); if(text[n] =='X') printf("%\%uff38");
		if(text[n] =='Y') printf("%\%uff39"); if(text[n] =='Z') printf("%\%uff3a"); if(text[n] =='0') printf("%\%uff10");
		if(text[n] =='1') printf("%\%uff11"); if(text[n] =='2') printf("%\%uff12"); if(text[n] =='3') printf("%\%uff13");
		if(text[n] =='4') printf("%\%uff14"); if(text[n] =='5') printf("%\%uff15"); if(text[n] =='6') printf("%\%uff16");
		if(text[n] =='6') printf("%\%uff16"); if(text[n] =='7') printf("%\%uff17"); if(text[n] =='8') printf("%\%uff18");
		if(text[n] =='9') printf("%\%uff19");
	}
	fflush(stdin);
}

void rot13()
{
	fflush(stdin);
	printf("\nEnter text: ");
	gets(text);
	fflush(stdin);
	duzina=strlen(text);
	printf("\n\"%s\" in ROT13 is: \n\n",text);
	for(n=0;n<duzina;n++)
	{
		fflush(stdin);
		
		if(text[n] ==' ') putchar(' '); /* <-- SPACE CHARACTER */
		if(text[n] =='a') putchar('n'); if(text[n] =='A') putchar('N');
		if(text[n] =='b') putchar('o'); if(text[n] =='B') putchar('O');
		if(text[n] =='c') putchar('p'); if(text[n] =='C') putchar('P');
		if(text[n] =='d') putchar('q'); if(text[n] =='D') putchar('Q');
		if(text[n] =='e') putchar('r'); if(text[n] =='E') putchar('R');
		if(text[n] =='f') putchar('s'); if(text[n] =='F') putchar('S');
		if(text[n] =='g') putchar('t'); if(text[n] =='G') putchar('T');
		if(text[n] =='h') putchar('u'); if(text[n] =='H') putchar('U');
		if(text[n] =='i') putchar('v'); if(text[n] =='I') putchar('V');
		if(text[n] =='j') putchar('w'); if(text[n] =='J') putchar('W');
		if(text[n] =='k') putchar('x'); if(text[n] =='K') putchar('X');
		if(text[n] =='l') putchar('y'); if(text[n] =='L') putchar('Y');
		if(text[n] =='m') putchar('z'); if(text[n] =='M') putchar('Z');
		if(text[n] =='n') putchar('a'); if(text[n] =='N') putchar('A');
		if(text[n] =='o') putchar('b'); if(text[n] =='O') putchar('B');
		if(text[n] =='p') putchar('c'); if(text[n] =='P') putchar('C');
		if(text[n] =='q') putchar('d'); if(text[n] =='Q') putchar('D');
		if(text[n] =='r') putchar('e'); if(text[n] =='R') putchar('E');
		if(text[n] =='s') putchar('f'); if(text[n] =='S') putchar('F');
		if(text[n] =='t') putchar('g'); if(text[n] =='T') putchar('G');
		if(text[n] =='u') putchar('h'); if(text[n] =='U') putchar('H');
		if(text[n] =='v') putchar('i'); if(text[n] =='V') putchar('I');
		if(text[n] =='w') putchar('j'); if(text[n] =='W') putchar('J');
		if(text[n] =='x') putchar('k'); if(text[n] =='X') putchar('K');
		if(text[n] =='y') putchar('l'); if(text[n] =='Y') putchar('L');
		if(text[n] =='z') putchar('m'); if(text[n] =='Z') putchar('M');
		if(text[n] =='0') putchar('0'); if(text[n] =='1') putchar('1');
		if(text[n] =='2') putchar('2'); if(text[n] =='3') putchar('3');
		if(text[n] =='4') putchar('4'); if(text[n] =='5') putchar('5');
		if(text[n] =='6') putchar('6'); if(text[n] =='7') putchar('7');
		if(text[n] =='8') putchar('8'); if(text[n] =='9') putchar('9');
		if(text[n] =='`') putchar('`'); if(text[n] =='~') putchar('~');
		if(text[n] =='!') putchar('!'); if(text[n] =='@') putchar('@');
		if(text[n] =='#') putchar('#'); if(text[n] =='$') putchar('$');
		if(text[n] =='%') putchar('%'); if(text[n] =='^') putchar('^');
		if(text[n] =='&') putchar('&'); if(text[n] =='*') putchar('*');
		if(text[n] =='(') putchar('('); if(text[n] ==')') putchar(')');
		if(text[n] =='-') putchar('-'); if(text[n] =='_') putchar('_');
		if(text[n] =='=') putchar('='); if(text[n] =='+') putchar('+');
		if(text[n] =='\\') putchar('\\'); if(text[n] =='|') putchar('|');
		if(text[n] =='[') putchar('['); if(text[n] =='{') putchar('{');
		if(text[n] ==']') putchar(']'); if(text[n] =='}') putchar('}');
		if(text[n] ==';') putchar(';'); if(text[n] ==':') putchar(':');
		if(text[n] =='\'') putchar('\''); if(text[n] =='"') putchar('"');
		if(text[n] ==',') putchar(','); if(text[n] =='<') putchar('<');
		if(text[n] =='.') putchar('.'); if(text[n] =='>') putchar('>');
		if(text[n] =='/') putchar('/'); if(text[n] =='?') putchar('?');
	}
	fflush(stdin);
}



int bin2hex()
{
	char bin[256] = "";
	char *p;
	int dec;

	printf("\nEnter number: ");
	fflush(stdin);
	fgets(bin, sizeof(bin), stdin);
	if ((p = strchr(bin,'\n')) != NULL)
	{
		*p = '\0';
	}
	dec = bin2dec(bin);
	if(dec)
	{
		printf("\n%s in Hexadecimal is: ",bin);
		printf("%x\n",dec);				 
	}
}



int bin2oct()
{
	char bin[256] = "";
	char *p;
	int dec;

	printf("\nEnter number: ");
	fflush(stdin);
	fgets(bin, sizeof(bin), stdin);
	if ((p = strchr(bin,'\n')) != NULL)
	{
		*p = '\0';
	}
	dec = bin2dec(bin);
	if(dec)
	{
		printf("\n%s in Octal is: ",bin);
		printf("%o\n",dec);				 
	}
}



int binary2dec()
{
	char bin[256] = "";
	char *p;
	int dec;

	printf("\nEnter number: ");
	fflush(stdin);
	fgets(bin, sizeof(bin), stdin);
	if ((p = strchr(bin,'\n')) != NULL)
	{
		*p = '\0';
	}
	dec = bin2dec(bin);
	if(dec)
	{
		printf("\n%s in Decimal is: ",bin);
		printf("%d\n",dec);				 
	}
}



int bin2dec(char *bin)
{
	int b, k, m, z;
	int len, sum = 0;
	
	len = strlen(bin) - 1;
	for(k = 0; k <= len; k++)
	{
		z = (bin[k] - '0');
		if ((z > 1) || (z < 0))
		{
			puts("\n\n\aBinary number please.");
			fflush(stdin);
			return(0);
		}
		for(b=1,m=len;m>k;m--)
		{
		b *= 2;
		}
		sum = sum + z * b;
	}
	return(sum);
}



int main()
{
	welcome();
	what2what();
}

// EOF, 862 lines (newline included), LiquidWorm (c) 2008. For Jaia With All My Heart !!!
