Пример #1
0
void disp(str v)
{ for (sit it=v.begin(); it!=v.end(); it++)
    cout << *it << endl;
  cout << endl;
}
Пример #2
0
/*************************************************
S.count(sub[, start[, end]]) -> uint
	Return the number of non-overlapping occurrences of substring sub in
	string S[start:end].  Optional arguments start and end are interpreted
	as in slice notation.
*************************************************/
uint str::count(const str& sub, int start, int end) {
	return ::count((start<0?s.end():s.begin())+start, (end<=0?s.end():s.begin())+end, sub.begin(), sub.end());
}
Пример #3
0
/*************************************************
S.endswith(suffix[, start[, end]]) -> bool
	Return True if S ends with the specified suffix, False otherwise.
	With optional start, test S beginning at that position.
	With optional end, stop comparing S at that position.
	suffix can also be a tuple of strings to try.
*************************************************/
bool str::endswith(const str& prefix, int start, int end) const {
	return ::endswith((start<0?s.end():s.begin())+start, (end<=0?s.end():s.begin())+end, prefix.begin(), prefix.end());
}
Пример #4
0
/*************************************************
S.find(sub [,start [,end]]) -> int
	Search from left to right.
	Return the lowest index in S where substring sub is found,
	such that sub is contained within s[start:end].  Optional
	arguments start and end are interpreted as in slice notation.
	Return -1 on failure.
*************************************************/
int str::find(const str& sub, int start, int end) const {
	citerator a=(start<0?s.end():s.begin())+start, b=(end<=0?s.end():s.begin())+end;
	if (a>=b) return -1;
	citerator c=std::search(a, b, sub.begin(), sub.end());
	return (c==b)?-1:c-a;
}