Цитата(relevant @ 25.5.2008, 21:33 ) | | не получается ВЫДЕЛИТЬ слово с числами, я и прошу эту функцию |
| Код |
enum char_type {eSeparator,eValue, eWord }; char_type GetCharType(char c) { // задать условия какие нужны if (c>='0' && c<='9') return eValue; if (c>='a' && c<='z') return eWord; if (c>='A' && c<='Z') return eWord; return eSeparator; }
void OnFindValue (const char* begin, const char *end) // указатели на начало и конец числа {
}; void OnFindWord (const char* begin, const char *end) // указатели на начало и конец слова { };
void ParseString(const char* str) { char_type state=eSeparator; //текушее состояние const char* p =str; // указатель на текуший элемент const char* p1=str; // указатель на начало слова/числа элемент
while (*p++) { switch (GetCharType(*p)) { case eSeparator : if (state==eValue) OnFindValue (p1,p); if (state==eWord) OnFindWord (p1,p); state=eSeparator; break; case eValue : if (state==eSeparator) { p1 =p; state=eValue; } break;
case eWord : if (state==eSeparator) p1 =p; state = eWord; break; } }; };
|
|