문제
다음 중 아래 문자열 함수의 결과 값으로 옳은 것은?
① 0 ② 1 ③ 3 ④ 4
정답
4번
해설
정답: 4. InStr(start, string, substring, compare)는 start 위치부터 substring을 찾아 그 위치를 반환한다. 비교 인수 1은 대/소문자를 구분하지 않는 텍스트 비교이다. 문자열 "I Have A Dream"의 3번째 문자부터 'A'를 대소문자 구분 없이 찾으면, 4번째 위치의 'a'(Have의 a)가 처음 발견되므로 결과는 4이다.
오답 풀이
- 1번: 찾는 문자가 없을 때 0이 반환되지만, 'A'(또는 'a')는 존재하므로 0이 아니다.
- 2번: 1번째 위치의 'I'는 검색 시작 위치(3)보다 앞이고 'A'도 아니므로 1이 아니다.
- 3번: 3번째 문자는 공백이므로 3이 아니다.
- 4번: 3번째부터 검색하면 4번째의 'a'(Have)가 처음 일치하므로 4가 옳다.
보충 개념 InStr은 1부터 시작하는 위치를 반환한다. 네 번째 인수가 1(vbTextCompare)이면 대소문자를 구분하지 않고, 0(vbBinaryCompare)이면 구분한다.