festring::sizetype festring::IgnoreCaseFind(const festring& Where, const festring& What, sizetype Begin) { if(What.IsEmpty()) return Begin; for(; Where.GetSize() >= What.GetSize() + Begin; ++Begin) if(::Capitalize(Where[Begin]) == ::Capitalize(What[0])) { truth Equal = true; for(sizetype c = 1; c < What.GetSize(); ++c) if(::Capitalize(Where[Begin + c]) != ::Capitalize(What[c])) { Equal = false; break; } if(Equal) return Begin; } return NPos; }
void febot::BeTalkedTo(festring String) { String.PreProcessForFebot(); if(!String.IsEmpty()) { festring Word; wordchain* OldChain = GetControlWordChain(); for(String.ExtractWord(Word); !Word.IsEmpty(); String.ExtractWord(Word)) { wordchain* NewChain = CreateWordChain(OldChain, Word); OldChain->Link.push_back(NewChain); OldChain = NewChain; } OldChain->Link.push_back(GetControlWordChain()); } }