문자열의 마지막 문자
다음 팁을 사용합니다.
트레일 바이트 범위는 대부분의 경우 ASCII 문자 집합과 겹칩니다. 모든 컨트롤 문자(32보다 작음)에 대해 바이트 검색을 안전하게 사용할 수 있습니다.
문자열의 마지막 문자가 백슬래시 문자인지 확인할 수 있는 다음 코드 줄을 고려합니다.
if ( sz[ strlen( sz ) - 1 ] == '\\' ) // Is last character a '\'? // . . .
strlen
MBCS 인식이 아니므로 멀티바이트 문자열에서 문자 수가 아닌 바이트 수를 반환합니다. 또한 일부 코드 페이지(예: 932)에서 '\'(0x5c)는 유효한 후행 바이트(sz
C 문자열)입니다.가능한 한 가지 해결 방법은 다음과 같이 코드를 다시 작성하는 것입니다.
char *pLast; pLast = _mbsrchr( sz, '\\' ); // find last occurrence of '\' in sz if ( pLast && ( *_mbsinc( pLast ) == '\0' ) ) // . . .
이 코드는 MBCS 함수 및
_mbsinc
._mbsrchr
이러한 함수는 MBCS를 인식하므로 '\' 문자와 후행 바이트 '\'를 구분할 수 있습니다. 문자열의 마지막 문자가 null('\0')인 경우 코드에서 일부 작업을 수행합니다.