www.monmouth.edu
192.100.64.7
bool found = false; vector<char *> tkns = split(addr, "."); if (tkns.size() == 4) { vecIter = tkns.begin(); while(vecIter != tkns.end()) { for (nIdx = 0; nIdx < strlen(*vecIter); nIdx++) if (!isdigit(*vecIter[nIdx])) goto exit_fun; vecIter++; } found = true; }
*
has lower precedence than []
.
*vecIter[nIdx]
is *(vecIter[nIdx])
.
vecIter[nIdx]
?
vecIter[nIdx]
is *(vecIter + nIdx)
.
bool found = false; vector<char *> tkns = split(addr, "."); if (tkns.size() == 4) { vector<char *>::iterator vecIter = tkns.begin(); while (vecIter != tkns.end()) { char * ep = *vecIter + strlen(*vecIter); if (find_if(*vecIter, ep, not1(ptr_fun(isdigit))) != ep) goto exit_fun; vecIter++; } found = true; }
not1()
and ptr_fun()
are function adapters.
static bool is_number(const char * cp) { const char * ep = cp + strlen(cp); return find_if(cp, ep, not1(ptr_fun(isdigit))) == ep; } bool dotted_quad(const string & addr) { vector<char *> tkns = split(addr, "."); if (tkns.size() == 4) { const vector<char *>::iterator e = tkns.end(); if (find_if(tkns.begin(), e, not1(ptr_fun(is_number))) != e) { // Found a non number. } else { // They're all numbers. } } }
is_number()
.
This page last modified on 6 December 2001.