|
날씨가 울 와이프 처럼 많이 쌀쌀해 졌네요(-_-;;)
안녕하세요. heredity입니다.
특별히 AnsiString에 대해 설면 드릴 건 없고...
AnsiStirng의 도움말을 읽어 보세요.
아래는 Button1을 누르면 "나는 ..."
에 대한 글자 정보(한글(2Byte문자), 1Byte문자)를
보여주는 예 입니다.
참고로 AnsiString에서 문자열의 선두 위치(메모리 상의 위치)를
얻으려면 PCHAR pchStr = asStr.c_str()과 같이 사용합니다.
기타 문자열 관련 유용한 기능이 많이 있으니
직접 테스트해 보시기 바랍니다.
행복하세요
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString asKind = "";
AnsiString asStr = "나는\t바보다 so you are..ㅎ ㅎ ㅎ";
PCHAR pchStr = (PBYTE) asStr.c_str();
int nStr = asStr.Length();
char chChar;
for( int nI = 0; nI < nStr; nI++ ) {
chChar = pchStr[nI];
if( (BYTE) chChar >= (BYTE) 0x80 ) {
nI++;
asKind += "'" + asStr.SubString( nI, 2 ) + "':한글 \r";
}
else if( (chChar == ' ') | (chChar == '\t') ) {
asKind += "'" + AnsiString( chChar ) + "':SP or TAB \r";
}
else {
asKind += "'" + AnsiString( chChar ) + "':1Byte문자 \r";
}
}
ShowMessage( asKind );
}
//-----------------------------------
님이 쓰신 글 :
: 김용수 님이 쓰신 글 :
: : 질문에 대한 이해가 잘 안가지만
: : (한글, 영문 뒤의 Space 비교에 대하여 조금더 구체적으로 써 주세요
: : 어떤 일을 어떻게 처리하려고 하는데 어떤 부분이 문제가 발생하는지...)
: : 경험상 AnsiString에서 한글과 영문 처리시
: : 별다른 문제가 없었습니다.
: :
: : 행복하세요.
: : 초보 님이 쓰신 글 :
: : : 메모장에 한글과 영문을 섞어쓴뒤,
: : :
: : : space를 " " 로 주고
: : :
: : : if( string !=" ")
: : : .....
: : : else if( string ! == " ")
: : : ................
: : : 라고 주면,
: : :
: : : 한글 뒤에 붙어있는 space는 if문에 걸리는데,
: : : 영문 뒤에 붙어있는 space는 왜 안걸릴까요?
: : : AnsiString은 space를 어떻게 인식하나요?
:
: 그러니깐
: 나는 바보다 so you are..
: 이런 문장을 주면,
: if(string != " ")에서
: 나는까지 된후 " "걸려서
: else if(string == " ")문으로 가는데,
: 그 뒤의 문장인 바보다 이후에 나오는 " "는
: else if문에 걸리지 않고 바로 if문으로 가버립니다.
|