C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[71873] Re:Re:Re:[질문] ㄱ으로 시작되는 문자열찾기
빌더초보 [starwagon] 3838 읽음    2014-10-15 16:06
빌더 6.0 의 String은 char 형인가 보네요.
char형은 EUC-KR 코드 를 사용 한다네요.
http://ko.wikipedia.org/wiki/KS_X_1001_%ED%95%9C%EA%B8%80_%EB%B6%80%EB%B6%84_%ED%91%9C

	char *c = Edit1->Text.SubString(1,1).c_str();

	unsigned short w=(unsigned char)c[0];

	w = w << 8;
	w = w + (unsigned char)c[1];

	if ( w== 0xA4A1 || 0xB0A0 <= w && w < 0xB1EE) {
		ShowMessage("ㄱ");
	}


0xA4A1 이 'ㄱ'에 대한 값이고
0xB0A0 ~ 0xB1ED 가 'ㄱ'으로 시작하는 모든 음절에 대한 값입니다.

빌더 6.0이 없어서 테스트는 못해봤지만
아마 될겁니다.

하안인 님이 쓰신 글 :
: 제가 빌더6.0을 사용하고 있는데요.
:   w_str() 은 없는데요.
:   c_str() 로 바꿔서 해 보았는데  해당 루틴으로 적용이 안되서...
:
:    unsigned sort w;
:    String s1,s3;
:     s3 = "";
:      s1 = ss.SubString(1,n-1);
:     w = *s1.SubString(1,1).c_str();
:     if( w == 0x3131 || (0xAC00 <= w && w < 0xAC00+0x24c))
:     {
:      c++;
:      //port[chan].pos++;
:      s3 += s1;
:     }
:     else
:     {
:     }
:
:
: 빌더초보 님이 쓰신 글 :
: : 한글 자모 코드 표 링크
: : http://www.unicode.org/charts/PDF/U1100.pdf
: :
: : 한글 음절 코드 표 링크
: : http://www.unicode.org/charts/PDF/UAC00.pdf
: :
: :
	unsigned short w = *Edit1->Text.SubString(1,1).w_str();
: : 
: : 	if (w == 0x3131 || (0xAC00 <= w && w < 0xAC00+0x24C)) {
: : 		ShowMessage((wchar_t)0x3131);
: : 	}

: :
: : 링크 참조하셔서 위처럼 코드 범위로 구분하시면 됩니다.
: :
: : 근데 자모코드 표에는 ㄱ이 1100 이라고 나와 있는데, 실제로는 3131 이더군요.
: : 컴파일러의 유니코드 버전차이(?) 인것같은데 자세히는 모르겠네요.
: :
: : 폼에 TEdit 를 두개 올리시고 Edit1Change에 아래와 같이 쓰고 테스트 해보세요.
: :
void __fastcall TForm1::Edit1Change(TObject *Sender)
: : {
: : 	wchar_t *w=Edit1->Text.w_str();
: : 	Edit2->Text="";
: : 	for (int i = 0; i < Edit1->Text.Length(); i++) {
: : 		Edit2->Text=Edit2->Text+", "+IntToHex((unsigned short)w[i],4);
: : 	}
: : }

: :
: : 24C의 의미는... 전체를 다 확인해 본것은 아닌데 하나의 자음에 할당되는 음절의 갯수는 24C 개 더군요.
: : 아마 조합할수 있는 모든 경우의 수가 24C 개 인가 봅니다. 아닐수도 있고요 ㅎㅎ;
: :
: : 그럼..
: :
: :
: :
: :
: :
: :
: :
: :
: : 하안인 님이 쓰신 글 :
: : :
: : : 기린, 미역, 기사, 등등
: : :
: : : 의 문자열이 있을 경우 ㄱ 으로 시작되는 문자열을 찾으려면 어떻게 해야 하나요.
: : :
: : : 한문자이면 문자열 검색으로 하면 되는데 ....

+ -

관련 글 리스트
71869 [질문] ㄱ으로 시작되는 문자열찾기 하안인 3510 2014/10/15
71878     Re:[질문] ㄱ으로 시작되는 문자열찾기 방태윤 3585 2014/10/16
71870     Re:[질문] ㄱ으로 시작되는 문자열찾기 빌더초보 3823 2014/10/15
71871         Re:Re:[질문] ㄱ으로 시작되는 문자열찾기 하안인 3665 2014/10/15
71873             Re:Re:Re:[질문] ㄱ으로 시작되는 문자열찾기 빌더초보 3838 2014/10/15
71874                 Re:Re:Re:Re:[질문] ㄱ으로 시작되는 문자열찾기 하안인 3790 2014/10/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.