示例#1
0
bool LString::operator !=(const LString &o) const {
    LString::ConstIterator thisI = this->cbegin();
    LString::ConstIterator oI = o.cbegin();
    for (; thisI != this->cend() && oI != o.cend(); thisI++, oI++) {
        if (*thisI == *oI) return false;
    }
    return true;
}
示例#2
0
LString::Iterator LString::find(const LString &str, LString::Iterator start) {
    ConstIterator si = str.cbegin();
    Iterator index;
    for (Iterator i = start; i != cend(); i++) {
        if (*si == *i) {
            if (si == str.cbegin()) {
                index = i;
            }
            si++;
            if (si == str.cend()) {
                return index;
            }
            continue;
        }

        si = str.cbegin();
    }
    return end();
}
示例#3
0
int LString::indexOf(const LString &str, int start) const {
    if (str.length() > this->length()) return -1;
    if (str.length() == 1) return indexOf(str[0], start);

    ConstIterator si = str.cbegin();
    int indexCounter = start;
    int index = 0;
    for (ConstIterator i = at(start); i != cend(); i++, indexCounter++) {
        if (*si == *i) {
            if (si == str.cbegin()) {
                index = indexCounter;
            }
            si++;
            if (si == str.cend()) {
                return index;
            }
            continue;
        }

        si = str.cbegin();
    }
    return -1;
}