258

258



ne wskazówki

int RExp::IChlnSz(unsigned char chSrc, const char *pch, int cch)

{

_asm

{

xor eax, eax mov al, chSrc mov edi, pch mov ecx, cch cld

repnz scasb jz Found xor eax, eax jmp End Found:

mov eax, cch ; cch - cchFound daje nam właściwy znak, jeśli scasb zmniejszy ; licznik przed wyszukaniem wartości.

sub eax, ecx End:

dec eax    ; Ponieważ musimy zwrócić indeks, należy odjąć 1 od liczby

; przetworzonych znaków.

}

}

#pragma warning( default: 4035 )

BOOL RExp::FSpecialChar(char chToken, char chSrc)

{

switch(chToken)

{

case 'd':

return FlsDigitRExp(chSrc); case 'D':

return !FlsDigitRExp(chSrc); case 'w':

return FlsWordCharRExp(chSrc); case 'W':

return !FlsWordCharRExp(chSrc); case 's':

return FlsWhiteRExp(chSrc); case 'S':

return !FlsWhiteRExp(chSrc); default:

return (chToken == chSrc);

}

}


Wyszukiwarka

Podobne podstrony:
Język C++ - praktyczne wskazówki Po class Napis { private: const int m_cchTest; int m_cch; char
Slajd23 Przykład opracowanych funkcji we/wy w Microsoft Visual C+^ unsigned char lnpByte(short int p
41888 PA170035 Typ Ilość
Po class Napis{ private: const int m_cchTest; int m_cch; char *m_pch; void lnicjNapis(const cha
140 TIF char *m_pch; public: int operator==(const Napis& napis) const{ return(strcmp(m_pch, napi
• typy danych:—    typy całkowite: char (zakres od —128 do 127) unsigned char (zakres
Typ Ilość bitów Zakres signed char 8 -128 < 2 < 127 unsigned char 8 0 < 2 <
const Literał &operator=(const char *pch){ // Wskazówka 42. // Wskazówka 43. // Wskazówka
068 TIF unikanie nieoczekiwanych wynikówUżywanie deklaracji const *Przed void Napis::lnicjNapis(char

więcej podobnych podstron