Views 2268 Votes 3 Comment 0
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

 


이번에는 꼭 게임을 만들때 필요한건 아니지만, 한국에서 프로그램을 만들려면 알아두면 좋은 팁을 소개합니다.


 


컴퓨터라는 기계가 처음은 영어권 나라에서 발명이 된 고로, 문자열 체계도 영문법만을 공식 지원합니다.


 


그래서 만들어둔 팁을 공개하도록 하겠습니다.


 


 


- 여기부터 -


 


 


 


일반적으로 char 배열에 문자열을 넣고 저장을 하는데, 이때 그냥 strlen 함수로 검사를 하면, 한글은 2글자로 인식해서 길이를 내주게 되죠.


'안녕하세요! 123'의 경우, 실제 문자열의 길이는 10이지만, strlen의 결과는 15가 나온다는 것...


WideByte 형 문자열 (WCHAR 라던지..)에서는 모든 글자를 1배열에 저장을 할 수 있어, 약간의 착오가 생길 수 있습니다.



이 때문에 WideByte 형 문자열로 변환할 때 한글이 섞이면 길이 체크 실수로 이것저것 문제가 생길 수가 있습니다..


여기서 중요한 포인트는 다음과 같습니다.



[한글의 시작비트은 1로 시작합니다.] => [즉, 한글인지 체크하려면 0x80과 &연산을 취해보면 된다고 합니다. ' ';]



그래서 길이체크 함수를 직접 만들어보면...


size_t strlen_kr(char* str)
{
       size_t size = 0;
       size_t i = 0;
       for (;;i++)
       {
              if (str[i] & 0x80)     // 한글이다! 배열 인식의 키인 i를 1번더 증가시키자!
              {
                      size++;
                      i++;
              }
              else if (str[i] == 0)  // 문자열의 끝이다! '' 이다! 종료~
                      break;
              else                     // 아니면 일반 아스키로 간주하고 사이즈 1 증가!
                      size++;
       }
       return size;
}



다음과 같이 됩니다. 실행속도는 문자열 길이에 비례합니다. ' 'a


심각한 문제는 아니었지만, 그냥 문자변환시 깔끔하게 처리할 수 있게 되었네요..


 


 

?

List of Articles
No. Category Subject Author Date Views
701 언어/기타 [마지막 3명 모집] [취업연계무료교육] VR/AR 게임 콘텐츠 전문가 양성 과정 교육생 모집 file 황금상자 2017.07.14 929
700 언어/기타 JSON parser 변환데이터 저장시 생기는 Object Too Deep 해결하기 title: 댓글러lklslel 2016.12.24 981
699 언어/기타 앙뜨프리너십에서 해커톤 부트캠프 모집중이네요 file 마나님이 2016.11.08 1029
698 언어/기타 게임의 버전을 짜 보자! - 유의적 버전 2.0.0 Yanggaeng 2016.06.07 1291
697 언어/기타 RPG게임 뻔한요소들. 8 title: 천무천무 2015.10.05 1784
696 언어/기타 자바스크립트와 관련해서 참고할 만한 사이트들 3 MARCO 2015.10.04 1002
695 언어/기타 꿀잼이군요! 3 사람님[대회참가] 2015.05.20 981
694 언어/기타 [강의링크] 대비법칙-색상대비-밀당의 재미 약한 반대색 설계 title: 천무천무 2015.04.02 745
693 언어/기타 오다 주웠습니다. 9 사람님[대회참가] 2015.03.30 1035
692 언어/기타 무료 이미지 사이트 Pixabay! 9 file 나작소 2015.03.28 1153
691 언어/기타 페인터(코럴) 브러쉬 세팅 공유 :) 8 file 샤이귤군 2015.03.28 1688
690 언어/기타 유화재료 & 기법 살짝 팁 공유 (매우 깁니다 -3-) 11 file 샤이귤군 2015.03.28 987
689 언어/기타 픽사에서 텍스쳐 꽁짜로 뿌림ㅋ 8 사람님(대회참가) 2015.03.26 986
688 언어/기타 멀티해상도에 따른 속도와 가속도 값의 조절 1 MiDtics2 2013.01.13 937
687 언어/기타 [Android] 멀티스크린 노하우 2 MiDtics2 2012.10.27 1590
686 언어/기타 [js] 코드 압축 걸음마 2 1 2012.06.12 1198
685 언어/기타 [css] css 겉핥기 핥핥 1 file 2012.05.03 1049
684 언어/기타 [css, js] form - select안의 option들에 스타일 적용하기 4 file 2012.04.28 5541
683 언어/기타 게임,개발기획의 기초 5 Grand 2011.08.01 2968
682 언어/기타 지형설정에서 원경(앞, 뒤)가 가지는 역할 file Dicky 2011.07.28 2553
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 36 Next
/ 36


[privacy statements] | [Terms of Use] | [Contact us] | [Sponsorship] | [Indiside History]

Copyright © 1999 - 2016 INdiSide.com/CL3D Co., Ltd. All Rights Reserved.
Owner : Chunmu(Jiseon Lee) | kernys(Wonbae Kim) | Sasinji(Byungkook Kim)