다음을 통해 공유


문자열의 마지막 문자

다음 팁을 사용합니다.

  • 트레일 바이트 범위는 대부분의 경우 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')인 경우 코드에서 일부 작업을 수행합니다.

참고 항목

멀티바이트 문자 집합(MBCS) 프로그래밍 팁
문자 할당