Delen via


Laatste teken in een tekenreeks

Gebruik de volgende tips:

  • Volg bytebereiken overlappen de ASCII-tekenset in veel gevallen. U kunt bytewise scans veilig gebruiken voor controletekens (minder dan 32).

  • Houd rekening met de volgende regel code, die mogelijk controleert of het laatste teken in een tekenreeks een backslash-teken is:

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

    Omdat strlen niet MBCS-bewust is, retourneert het het aantal bytes, niet het aantal tekens, in een tekenreeks met meerdere bytes. Houd er ook rekening mee dat in sommige codepagina's (bijvoorbeeld 932) '\' (0x5c) een geldige trail-byte is (sz een C-tekenreeks).

    Een mogelijke oplossing is om de code op deze manier te herschrijven:

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

    Deze code maakt gebruik van de MBCS-functies _mbsrchr en _mbsinc. Omdat deze functies MBCS-bewust zijn, kunnen ze onderscheid maken tussen een '\'-teken en een trail-byte '\'. De code voert een bepaalde actie uit als het laatste teken in de tekenreeks een null(\0) is.

Zie ook

MBCS-programmeertips
Tekentoewijzing