public static HANGUL DevideJaeumMoeum(char hangul) { int ChoSung, JungSung, JongSung; // 초성,중성,종성의 인덱스 ushort temp = 0x0000; // 임시로 코드값을 담을 변수 HANGUL hg = new HANGUL(); //Char을 16비트 부호없는 정수형 형태로 변환 - Unicode temp = Convert.ToUInt16(hangul); // 인자가 한글이 아닌 경우 if ((temp < m_UniCodeHangulBase) || (temp > m_UniCodeHangulLast)) { hg.isHangul = "NH"; hg.originalChar = hangul; hg.chars = null; } else { int nUniCode = temp - m_UniCodeHangulBase; ChoSung = nUniCode / (21 * 28); nUniCode = nUniCode % (21 * 28); JungSung = nUniCode / 28; nUniCode = nUniCode % 28; JongSung = nUniCode; hg.isHangul = "H"; hg.originalChar = hangul; hg.chars = new char[] { ChosungArray[ChoSung], JungsungArray[JungSung], JongsungArray[JongSung] }; } return(hg); }
public static void Main(string[] args) { int i, j, num; char[] word; string tmpWord; HANGUL hg = new HANGUL(); Console.WriteLine("뽑아낼 글자 <1.초성 2.중성 3.종성>"); num = int.Parse(Console.ReadLine()); Console.Write("단어 입력: "); tmpWord = Console.ReadLine(); word = new char[tmpWord.Length]; for (i = 0; i < tmpWord.Length; i++) { word[i] = tmpWord[i]; } switch (num) { case 1: Console.WriteLine("--초성 출력--"); for (i = 0; i < tmpWord.Length; i++) { hg = DevideJaeumMoeum(word[i]); Console.Write(hg.chars[0]); } Console.WriteLine(""); break; case 2: Console.WriteLine("--중성 출력--"); for (i = 0; i < tmpWord.Length; i++) { hg = DevideJaeumMoeum(word[i]); Console.Write(hg.chars[1]); } break; case 3: Console.WriteLine("--종성 출력--"); for (i = 0; i < tmpWord.Length; i++) { hg = DevideJaeumMoeum(word[i]); Console.Write(hg.chars[2]); } break; } }