#include <stdio.h>
#include <string.h>
#include <ctype.h>
void change_num2str(char *buf);
void change_str2num(char *buf);
char *str[] = {"zero", "one", "two", "three", "four",
"five", "six", "seven", "eight", "nine"};
// 이렇게 선언하는 것을 ragged 배열이라고 합니다.
main ()
{
char buf[100] = "\0";
printf("숫자나 영문자를 입력하세요 : ");
gets(buf); // 문자열 받기
if (isdigit(buf[0])) change_num2str(buf); // 숫자로 시작되면
else if (isalpha(buf[0])) change_str2num(buf); // 문자로 시작되면
else printf("wrong valuse!\n"); // 이저 저도 아니면
printf("press anykey to continue..."); getchar();
}
void change_num2str(char *buf)
{
int i;
while (buf[i]) printf("%s ", str[buf[i++] - '0']);
}
void change_str2num(char *buf)
{
int i;
char *p;
p = strtok(buf, " "); // 최초 단어 추출
while (p != NULL) {
for (i = 0; i < 10; i++) { // 문자열 탐색
if (strcmp(p, str[i]) == 0) { // 문자열을 찾으면
printf("%d", i); // 숫자로 출력
break; // 찾았으므로 다음으로 넘어감
}
}
p = strtok(NULL, " "); // 다음 단어 검색
}
printf("\n");
}