Partilhar via


Último caractere em uma seqüência de caracteres

Use as seguintes dicas:

  • Trilha byte intervalos se sobrepõem o conjunto em muitos casos de caracteres ASCII.Você pode usar com segurança bytewise varreduras para quaisquer caracteres de controle (menos de 32).

  • Considere a seguinte linha de código, que pode verificar se o último caractere na string é um caractere de barra invertida:

    if ( sz[ strlen( sz ) - 1 ] == '\\' )    // Is last character a '\'?
        // . . .
    

    Porque strlen não está ciente em MBCS, retorna o número de bytes, não o número de caracteres, uma seqüência de caracteres multibyte.Além disso, observe que, em algumas páginas (932, por exemplo), de código ' \' (0x5c) é um byte de seguimento válido (sz é uma seqüência de C).

    Uma solução possível é regravar o código dessa forma:

    char *pLast;
    pLast = _mbsrchr( sz, '\\' );    // find last occurrence of '\' in sz
    if ( pLast && ( *_mbsinc( pLast ) == '\0' ) )
        // . . .
    

    Esse código usa as funções MBCS _mbsrchr e _mbsinc.Como essas funções são ciente de MBCS, eles podem distinguir entre uma ' \' caractere e um byte de seguimento ' \'.O código executa alguma ação se o último caractere na seqüência de caracteres é um valor nulo ('\0').

Consulte também

Conceitos

Dicas de programação MBCS

Atribuição de caractere