Partilhar via


Último caractere em uma seqüência de caracteres.

Use as seguintes dicas:

  • Os intervalos de bytes de trilha de sobreponham o caractere ASCII definido em muitos casos. Você pode usar com segurança varreduras bytewise para quaisquer caracteres de controle (menos de 32).

  • Considere a seguinte linha de código, que pode ser verificado se o último caractere em uma seqüência de caracteres é um caractere de barra invertida:

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

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

    Uma solução possível é reescrever o código desta 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 sensíveis a MBCS, pode distinguir um ' \' um byte de seguimento e de caractere ' \'. O código realiza alguma ação se o último caractere na seqüência de caracteres é nulo ('\0').

Consulte também

Conceitos

Dicas de programação de MBCS

Atribuição de caractere