Aracılığıyla paylaş


Dizedeki Son Karakter

Aşağıdaki ip uçlarını kullanın:

  • Sondaki bayt değerleri çoğu zaman ASCII karakter kümesiyle örtüşür.Herhangi bir denetim karakteri için (32 den küçük) güvenli olarak bayt bayt aramayı kullanabilirsiniz.

  • Bir dizede son karakterin ters eğik çizgi karakteri olma ihtimalini denetleyen aşağıdaki kod satırına dikkat edin:

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

    strlen'in MBCS farkındalığı olmadığından, çoklu bayt dizesinde karakter sayısı yerine bayt sayısını döner.Ayrıca, bazı kod sayfalarında (örneğin, 932), '\' (0x5c)'nin geçerli sondaki bayt olduğu dikkate alınmalıdır. (sz C dizesidir.)

    Muhtemel çözümlerden biri kodu aşağıdaki gibi yeniden yazmaktır:

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

    Bu kod MBCS fonksiyonları olan _mbsrchr ve _mbsinc'i kullanır.Bu fonksiyonların MBCS farkındalığı olduğu için, '\' karakterini ve sondaki baytı '\' ayırt edebilirler.Eğer dizedeki son karakter boş ('\0') ise, kod bazı eylemleri gerçekleştirir.

Ayrıca bkz.

Kavramlar

MBCS Programlama İpuçları

Karakter Atama