python的string,rfind(str,beg),查找的是从beg开始的子子串中最后出现str的位置, 即从beg位置向后查找
c++的string,rfind(str,beg), 从beg开始向前查找,找到遇到的第一个str的位置
string s = "12||34||56";
size_t p1 = s.rfind("||");
size_t p2 = s.rfind("||", p1);
cout <<p1 <<" "<<p2<<endl;
s = '12||34||56'
p1 = s.rfind('||')
p2 = s.rfind('||',p1)
print p1,p2
c++
6 6
python
6 6
如果改为s.rfind("||", p1 -1)
c++
6 2
python
6 6
如果改为s.rfind("||", p1 + 1)
c++
6 6
python
6 -1
又犯了一个2B错误,原因是写python多了,把c++ substr(pos, n)认为是substr(from,to)