Compartilhar via


O último caractere em uma cadeia de caracteres

Use as dicas a seguir:

  • Intervalos de byte de trilha de sobreponham o conjunto em muitos casos de caractere 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 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, ela retorna o número de bytes, não o número de caracteres, em uma seqüência de caracteres de multibyte. Além disso, observe que em algumas páginas (932, por exemplo), de código ' \ ' (0x5c) é um byte final válido (sz é uma seqüência de caracteres de C).

    Uma solução possível é regravar 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 o MBCS funções _mbsrchr e _mbsinc. Como essas funções são sensíveis à MBCS, eles podem distinguir entre um ' \ 'caractere e um byte final' \ '.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