#include <stdio.h>
#include <string.h>
int iCnt=0;
int idx,i,j;
char digit[100][50];
int arrIdx[4]={0,0,0,0};
char *sTemp1;
char *s[4]={"a","b","c","d"};
/*f(a) = 1, f(b) = 1010, f(c) = 01, f(d) = 10101*/
char *code[4]={"1","1010","01","10101"};
/*코드를 알파멧으로 변경*/
char* CodeToAlphabet(char *str,int length);
/*입력받은 코드를 배열에 저장*/
void CodeToArray();
/*알파벳을 코드로 변경*/
char* AlphabetToCode(char *str,int length);
int main(){
printf("=============HELLO C!!\n");
printf("\n *** 코드 입력 갯수*** \n");
scanf("%d",&iCnt);
printf("===> [ %d ]\n",iCnt);
printf("\n *** 코드 입력 값 *** \n");
i=iCnt;
/*코드 입력*/
do{
scanf("%s", &digit[iCnt-i]);
printf("%s\n",&digit[iCnt-i]);
printf("\n **************** \n");
--i;
}while(i>0);
CodeToArray();/*입력받은 코드를 배열에 저장*/
sTemp1=AlphabetToCode(code[3],0);
printf("AlphabetToCode : [%s]\n",sTemp1);
return 0;
}
/*입력받은 코드를 배열에 저장*/
void CodeToArray(){
int sLength=0;
int idx;
printf("\n****CodeToArray() : 입력받은 코드를 배열에 저장****\n");
for(idx=0;idx<iCnt;idx++){
char *str=digit[idx];
printf("======>digit[%d] : %d \n",idx,digit[idx]);
printf("===%d===>[%s][%d]\n",idx,str,strlen(str));
sLength=strlen(str);
printf("sLength[%d]\n",sLength);
printf("\n****CodeToAlphabet(%s,%d) : 코드를 알파멧으로 변경****\n",str,sLength);
char* sResult = CodeToAlphabet(str,sLength);
printf("CodeToAlphabet = %s\n",sResult);
}
}
/*코드를 알파벳으로 변경*/
char* CodeToAlphabet(char *str,int length){
int i;
char* code2;
char* sTemp=str;
char* alphabet ;
for(i=0;i<4;i++){
if(!strcmp(sTemp,code[i])){
printf("==>%s\n",s[i]);
printf("==>%s\n",code[i]);
alphabet=s[i];
code2 = code[i];
arrIdx[i] = 1;
}
//printf("%s\n",s[i]);
//printf("%s\n",code[i]);
}
printf("\n alphabet : [%s] , code2 : [%s] \n",alphabet,code2);
return alphabet;
}
/*알파벳을 코드로 변경*/
char* AlphabetToCode(char *str,int length){
int i;
char* code2;
char* sTemp=str;
printf("\n***알파벳을 코드로 변경***\n");
for(i=0;i<4;i++){
if(!strcmp(sTemp,code[i])){
printf("====>%s\n",s[i]);
printf("====>%s\n",code[i]);
sTemp=s[i];
code2 = code[i];
}
}
return code2;
}