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.