CodeTalk 5월 4일에 포스트됨 공유하기 5월 4일에 포스트됨 (edited) 델파이에서 문자열 안에서 X번째 문제를 가리키는 방법은 2가지가 있다. 단, 인덱스가 0부터 시작할 수도 있고, 1부터 시작할 수도 있으므로 그 차이를 알아야 한다. TStringHelper.Chars 프로퍼티를 사용하는 방법: (예문: S1.Chars[인덱스]) 델파이의 String용 Helper는 "모두 일관성 있게 무조건" Index가 0부터 시작한다. 따라서, Helper를 사용하면 문자열을 "일관성 있게" 다룰 수 있어서 좋다. 단, 이 프로퍼티는 '읽기 전용' 이다. String 변수 바로 뒤에 [Index]를 붙이는 방식 (예문: S1[인덱스], 전통적인 방식이다) 컴파일러 지시자 옵션 {$ZEROBASEDSTRINGS ON/OFF}에 따라 Index가 0부터 시작할 수도 있고, 1부터 시작할 수도 있다. 델파이는 "String 인덱스"가 전통적으로 1부터 시작한다. (델파이 컴파일러는 기본 설정이 {$ZEROBASEDSTRINGS OFF}이다 - 2023년 5월 현재 기준) 이를 기준으로 작성한 코드를 계속 사용하려면 이 옵션을 OFF로 지정하도록 한다. 그렇지 않고, 문자열의 인덱스가 0부터 시작하게 하려면 이 옵션을 ON으로 지정한다. 예를 들면 다음과 같다. S1 := ''반가워''; 인 경우: S1.Chars[1]의 값은? 가 (즉, 인덱스 1은 두번째 문자를 가리킨다) S1[1]의 값은? {$ZEROBASEDSTRINGS OFF}로 설정하면 반 (즉, 인덱스는 1부터 시작하므로, 인덱스 1은 첫번째 문자를 가리킨다) {$ZEROBASEDSTRINGS ON}로 설정하면 가 (즉, 인덱스는 0부터 시작하므로, 인덱스 1은 두번째 문자를 가리킨다) [예제 소스 ] https://github.com/Codetalk2022/DelphiTraining/blob/main/Object Pascal Language/String/StringIndex/StringIndex.dpr [더 알아보기] 델파이의 String 타입을 충분히 이해하고 싶다면, Delphi Object Pascal Handbook (영문, 무료 PDF 다운로드): "06장 All about strings"을 볼 것을 권한다. 위 설명과 예제 역시 이 책에 있는 내용이 바탕이 되었다. Edited 5월 4일 by CodeTalk 인용하기 이 댓글 링크 다른 사이트에 공유하기 더 많은 공유 선택 사항
Recommended Posts
이 토의에 참여하세요
지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.