Udostępnij za pośrednictwem


Ostatni znak w ciągu

Skorzystaj z następujących porad:

  • Zakresów bajtów szlak nakładają się w wielu przypadkach zestaw znaków ASCII.Bytewise skanowania można bezpiecznie używać do wszelkich znaków kontrolnych (mniej niż 32).

  • Rozważmy następujący wiersz kodu, który może być sprawdzanie, jeżeli ostatni znak w ciągu jest znakiem kreski ułamkowej odwróconej:

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

    Ponieważ strlen nie jest MBCS-aware, zwraca liczbę bajtów, nie liczbę znaków w ciąg wielobajtowy.Ponadto, Uwaga: w niektórych (932, na przykład), strony kodowe ' \' (0x5c) jest nieprawidłowy bajt (sz jest ciągiem C).

    Aby ponownie zapisać kod w ten sposób jest możliwe rozwiązanie:

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

    W tym przykładzie użyto funkcji MBCS _mbsrchr i _mbsinc.Ponieważ funkcje te są świadomi MBCS, można wyróżnić między ' \' znaków i bajtów szlak "\".Kod wykonuje pewne działania, jeżeli ostatni znak w ciągu jest pusty (\0).

Zobacz też

Koncepcje

Porady dotyczące programowania MBCS

Przypisanie znaku