📄 main.c
字号:
#include <stdio.h>
extern int hangul_automata (int c, char *buf);
#include "KMime.h"
char gPreChar[4]={0}; // To remember the previous four char codes;
/*=============================================
To put a char in previous codes array.
=============================================*/
void pushPreChar(char cInput)
{
int i, j;
for(i=0; i<3; i++)
gPreChar[i] = gPreChar[i+1];
gPreChar[3] = cInput;
}
/*=============================================
To get the last char in previous codes array.
=============================================*/
char popPreChar()
{
return gPreChar[2];
}
static char chat_p[100];
void main()
{
char buf[20];
char c=0;
char cNewChar;
register i = 1,j,m = 0;
cPreFirst = 0;
cPreSecond = 0;
cPreThird = 0;
cPreFourth = 0;
memset(chat_p,0x0,100);
memset(buf,0x0,20);
//extern XtermWidget term;
printf("Hello!\n" );
while(c!='`')
{
c=getche();
pushPreChar(c);
cNewChar=c;
switch( gPreChar[3])
{
case ZERO:
cNewChar = 'm';
break;
case ONE :
cNewChar = 'r';
break;
case TWO :
cNewChar = 's';
break;
case THREE:
if(popPreChar == THREE)
{
hangul_automata('\b', buf);
for(j=0;j<i;j++)
{
chat_p[m-j] = 0x0;
}
m = m-j;
cNewChar = 'k';
}
else
{
cNewChar = 'j';
}
break;
case FOUR :
cNewChar = 'f';
break;
case FIVE :
cNewChar = 'a';
break;
case SIX:
if(gPreChar[2] == SIX)
{
hangul_automata('\b', buf);
for(j=0;j<i;j++)
{
chat_p[m-j] = 0x0;
}
m = m-j;
cNewChar = 'n';
}
else
{
cNewChar = 'h';
}
break;
case SEVEN :
cNewChar = 't';
break;
case EIGHT :
cNewChar = 'd';
break;
case NINE:
if(gPreChar[2] == THREE)
{
/* '39' */
hangul_automata('\b', buf);
for(j=0;j<i;j++)
{
chat_p[m-j] = 0x0;
}
m = m-j;
if(gPreChar[1] == THREE)/* '339' */
cNewChar = 'p';
else
cNewChar = 'o';
break;
}
else if(gPreChar[2] == STAR)
{
if(gPreChar[1] == THREE) /* '3*9' */
{
hangul_automata('\b', buf);
for(j=0;j<i;j++)
{
chat_p[m-j] = 0x0;
}
m = m-j;
if(gPreChar[0] == THREE)
{/* '33*9' */
cNewChar = 'P';
}
else/* '3*9' */
cNewChar = 'O';
}
}
else /* '9' */
{
cNewChar = 'l';
}
break;
case STAR :
switch(gPreChar[2])
{
case ONE:/* '1*' */
hangul_automata('\b', buf);
for(j=0;j<i;j++)
{
chat_p[m-j] = 0x0;
}
m = m-j;
cNewChar = 'z';
break;
case TWO: /* '2*' */
hangul_automata('\b', buf);
for(j=0;j<i;j++)
{
chat_p[m-j] = 0x0;
}
m = m-j;
cNewChar = 'e';
break;
case THREE:/* '3*' */
hangul_automata('\b', buf);
for(j=0;j<i;j++)
{
chat_p[m-j] = 0x0;
}
m = m-j;
if(gPreChar[1] == THREE)
/* '33*' */
cNewChar = 'u';
else
cNewChar = 'i';
break;
case FIVE:/* '5*' */
hangul_automata('\b', buf);
for(j=0;j<i;j++)
{
chat_p[m-j] = 0x0;
}
m = m-j;
cNewChar = 'q';
break;
case SIX:/* '6*' */
hangul_automata('\b', buf);
for(j=0;j<i;j++)
{
chat_p[m-j] = 0x0;
}
m = m-j;
if(gPreChar[1] == SIX)
cNewChar = 'b';
else
cNewChar = 'y';
break;
case SEVEN:/* '7*' */
hangul_automata('\b', buf);
for(j=0;j<i;j++)
{
chat_p[m-j] = 0x0;
}
m = m-j;
cNewChar = 'w';
break;
case EIGHT:/* '8*' */
hangul_automata('\b', buf);
for(j=0;j<i;j++)
{
chat_p[m-j] = 0x0;
}
m = m-j;
cNewChar = 'g';
break;
case STAR:/* '**' */
if(gPreChar[1] == SEVEN)
{/* '7**' */
hangul_automata('\b', buf);
for(j=0;j<i;j++)
{
chat_p[m-j] = 0x0;
}
m = m-j;
cNewChar = 'c';
}
else if(gPreChar[1] == TWO)
{/* '2**' */
hangul_automata('\b', buf);
for(j=0;j<i;j++)
{
chat_p[m-j] = 0x0;
}
m = m-j;
cNewChar = 'x';
}
else if(gPreChar[1] == FIVE)
{/* '5**' */
hangul_automata('\b', buf);
for(j=0;j<i;j++)
{
chat_p[m-j] = 0x0;
}
m = m-j;
cNewChar = 'v';
}
}
break;
case POND :
switch(gPreChar[2])
{
case ONE: /* '1#' */
hangul_automata('\b', buf);
for(j=0;j<i;j++)
{
chat_p[m-j] = 0x0;
}
m = m-j;
cNewChar = 'W';
break;
case SEVEN: /* '7#' */
hangul_automata('\b', buf);
for(j=0;j<i;j++)
{
chat_p[m-j] = 0x0;
}
m = m-j;
cNewChar = 'T';
break;
case STAR:
if(gPreChar[1] == TWO )/* '2*#' */
{
hangul_automata('\b', buf);
for(j=0;j<i;j++)
{
chat_p[m-j] = 0x0;
}
m = m-j;
cNewChar = 'E';
break;
}
if(gPreChar[1] == SEVEN )/* '7*#' */
{
hangul_automata('\b', buf);
for(j=0;j<i;j++)
{
chat_p[m-j] = 0x0;
}
m = m-j;
cNewChar = 'W';
break;
}
}
break;
}
i = hangul_automata(cNewChar, buf);
for(j=0;j<i;j++)
{
chat_p[m+j] = buf[j];
}
m = m + i;
printf("Candaite is %s\n",buf);
printf("OutBuf is %s\n",chat_p);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -