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
[71207] [답변] AnsiString 과 UnicodeString의 c_str()의 차이
정성훈.해미 [sage5nor] 4819 읽음    2014-04-12 14:05
안녕하세요.
정성훈.해미입니다.

문자열 변수형 AnsiString과 UnicodeString는 모두 c_str() 함수를 내장하고 있지만
약간 다릅니다.

AnsiString의 경우 c_str()은 char*로 반환하고
UnicodeString의 경우 c_str()은 wchar*로 반환합니다.
UnicodeString을 char*로 반환할려면 t_str()을 사용하야 합니다.

OpenDialog1->FileName 은 UnicodeString형이고
strcpy함수는 인자로 char*를 받기 때문에

다음과 같이 t_str()로 해주시면 짤리지 않고 정상적으로 나옵니다.

strcpy(aaa, OpenDialog1->FileName.t_str());     //.t_csr()을 사용



초보사용자 님이 쓰신 글 :
:
: char aaa[256];
: .
: .
: .
: strcpy(aaa, OpenDialog1->FileName.c_str());
:
: 이렇게 코딩이 돼있고요...
: 옛날 버전 빌더로는 제대로 컴파일이 됐었는데, C++Builder XE5로 설치하고
: 실행했더니 에러가 납니다.
:
: Cannot convert 'wchar t*' to 'const char *'  <-이런 에러가 납니다.
:
: 그래서
: strcpy(aaa, (const char *)OpenDialog1->FileName.c_str());
: 이렇게 했더니 에러는 없어졌는데,
: 정상적으로 strcpy가 안되고 첫글자 하나만 aaa에 들어가네요....
:
: 조언부탁드립니다.
:
: 미리 꾸벅^^*

+ -

관련 글 리스트
71187 strcpy 사용문제... 초보사용자 3134 2014/04/11
71207     [답변] AnsiString 과 UnicodeString의 c_str()의 차이 정성훈.해미 4819 2014/04/12
71208         Re:[답변] XE5에서 c_str() 과 t_str() 구분 없이 둘다 wchar*를 반환함 3452 2014/04/12
71210             Re:Re:[답변] XE5에서 c_str() 과 t_str() 구분 없이 둘다 wchar*를 반환함 4636 2014/04/12
71211                 -> 정성훈.해미 입니다. 로그인을 안하고 답글을 쓴걸 몰랐습니다. 정성훈.해미 3378 2014/04/12
71188     Re:strcpy 사용문제... pwrlove 3443 2014/04/11
71191         Re:Re:strcpy 사용문제... 3541 2014/04/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.