Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Rozważmy następujący przykład, w którym pętla while skanuje ciąg, kopiując wszystkie znaki z wyjątkiem "X" do innego ciągu:
while( *sz2 )
{
if( *sz2 != 'X' )
*sz1++ = *sz2++;
else
sz2++;
}
Kod kopiuje bajt do sz2 lokalizacji wskazywane przez sz1, a następnie zwiększa sz1 się w celu odebrania następnego bajtu. Jeśli jednak następny znak w sz2 obiekcie jest znakiem dwubajtowym, przypisanie do sz1 kopiowania tylko pierwszego bajtu. Poniższy kod używa funkcji przenośnej do bezpiecznego kopiowania znaku i innego do przyrostowania sz1 i sz2 poprawnego:
while( *sz2 )
{
if( *sz2 != 'X' )
{
_mbscpy_s( sz1, 1, sz2 );
sz1 = _mbsinc( sz1 );
sz2 = _mbsinc( sz2 );
}
else
sz2 = _mbsinc( sz2 );
}