codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <stdio.h> void main() { char buf[20] = { "한aa글한" }; char font[25][94][2]; int no,page; /* 한 buf[0] = -19 buf[1] = -107 buf[2] = -100 글 buf[3] = -22 buf[4] = -72 buf[5] = -128 한 buf[6] = -19 buf[7] = -107 buf[8] = -100 buf[max-0]) = -100 buf[max-1]) = -107 buf[max-2]) = -19 buf[max-3]) = -128 buf[max-4]) = -72 buf[max-5]) = -22 buf[max-6]) = -100 buf[max-7]) = -107 buf[max-8]) = -19 */ int i=0; //len : 문자열 전체의 길이 5 int len = strlen(buf); printf("len : %d\n", len); //max : 문자열 전체의 길이가 들어갈 수 있는 버퍼에 위치 //buf[5] = 0 이므로. buf[5-1] == buf[4]에 값을 얻기위해서. 문자열 전체의 길이 5에서 -1을 뺀다. //버퍼의 최고 위치 len-1로 max 값을 사용한다. -1이 번거로우니까.. int max = len-1; //문자값 확인 for(i=0; i<len; i++) { //AC00—D7A3 if( (0xAC00 <= buf[i] << 8 | buf[i+1]) && (buf[i] << 8 | buf[i+1] <= 0xD7A3) ) { printf("AC00—D7A3 buf[%d] = %d\n", i, buf[i]); } } for(page=0;page<25;page++) // 한글 완성형 코드 만들기 { for(no=0;no<94;no++) { font[page][no][0]=page+0xb0; font[page][no][1]=no +0xa1; } } for(i=0;i<2350;i++) // 한글 완성형 한글 표시 하기 { printf("%c%c ",font[0][i][0],font[0][i][1]); } for(i=0;i<2350;i++) // 한글 완성형 HEX코드 표시 하기 { printf("%x%x ",font[0][i][0],font[0][i][1]); } //문자값 확인 for(i=0; i<len; i++) { printf("buf[max-%d]) = %d\n", i, buf[max-i]); } //문자의 중간 찾기 (영문만 가능... 한글은 2 byte) int mid = len / 2; //만약. mid 가 나머지가 있으면 int remaind = len % 2; printf("remaind = %d\n", remaind); if(remaind == 1) { //더하기 1 mid = mid + 1; } printf("mid = %d\n", mid); printf("\n"); printf("\n"); printf("\n"); // int count = 0; for(i=0; i<mid; i++) { printf("buf[%d] = %d\t\t\t", i, buf[i]); printf("buf[%d] = %d\n", max-i, buf[max-i]); if(buf[i] == buf[max-i]) { count++; printf("count ++\n"); } } if( count == mid ) { printf("회문이다."); } else { printf("회문이 아니다."); } }
Private
[
?
]
Run code
Submit