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
[4027] Re:Re:[긴급질문]문자열에서 문자 떼어내기...
이영수 [] 3300 읽음    2000-09-04 00:00
이영수 님이 쓰신 글 :
: 김명구 님이 쓰신 글 :
: : 현재 C++빌더 5로 프로그램 작성중인데...
: :
: : "Love#Hope#Human#...."과같은 문자열을 전송받았을때
: : 이 문자열을 읽어들여 앞에서 부터 "#" 또는 " "(blank)를 기준으로 앞에서부터 잘라내어
: : a = Love, b=Hope, c=Human... 같이 다른 변수로 입력시킬수 있는 방법이 있는지요.
: : C++빌더의 질문보다는 C에대한 질문이지만.. 여기에 들어오시는분들중에 C에 익숙한 분들이 많을 것같아서 질문 드립니다.
:
: 안녕하세요 이영수 입니다.
: 아주 간단 합니다.
: AnsiString strSource= "Love#Hope#Human#";
:
:     AnsiString strOne = strSource.Substring(1, strSource.Pos('#')-1);
:     strSource.Delete(1, strSource.Pos('#'));
:
: 위 두줄을 갯수만큼 코딩하던지 루프을 돌리시던지...
]
안녕하세요 이영수 입니다. 메일을 주셨더 군요!...

AnsiString은 Null 을 종료문자로 인식합니다.
그러니.. char * Type에 data를 집어 넣을 때 끝에다 NULL 즉 '\0'을 삽입하면 됩니다.
예를 들어!!!
char *chTemp = new char[100];
memcpy(chTemp, "Love#Hope#Human",sizeof("Love#Hope#Human"));
한뒤 뒤에다가..
*(chTemp + sizeof("Love#Hope#Human")) = '\0';
이렇게 하면 되죠!!
글구..
Ansistring strTemp = chTemp;
delete [] chTemp;
이런 식으로다 대입하면 됩니다.
그 다음 부턴 위에서 기술한 데로 쓰시면 됩니다.

그리고 메모리 에러는 단 2가지 원인이 있을 수 있습니다.
없는데 접근하라고 했을 때
오버플로우가 발생해..그 오브젝트에 이상이 생겼을 때...그런원인이 대분분이죠!!
소스를 잘 분석해 보세요..혹시 생성과 소멸을 정확히 해주었는지..아니면 할당한 변수용량
이상으로 쓰게 되서...다근 코드에 오버라이트 할 가능성이 없는지..
이상입니다.
도움 되시길..
그리고 멜로 헬프하시면 담부터 답변 안해 드립니다. 죄송!!!!!

+ -

관련 글 리스트
4021 [긴급질문]문자열에서 문자 떼어내기... 김명구 3209 2000/09/02
4022     Re:[긴급질문]문자열에서 문자 떼어내기... 이영수 3348 2000/09/02
4027         Re:Re:[긴급질문]문자열에서 문자 떼어내기... 이영수 3300 2000/09/04
4028             Re:Re:Re: 답변고맙습니다. 김명구 3109 2000/09/04
4032                 Re:Re:Re:Re: 답변고맙습니다. 이영수 3107 2000/09/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.