已知数组下表i和j(i < = j),问i到j的长度是多少(包括i和j)?
计算方法如下:
len = j - i + 1
例子:strFileName是一个包含后缀名,不包含路径的文件名(如:river.jpg),下面的代码能够得到它的后缀名:
string strExtension;
string::size_type posDot = strFileName.find_last_of('.');
string::size_type len = strFileName.size() - posDot - 1; //如果套用上面公式的话,可以写成如下代码:
// string::size_type len = (strFileName.size() - 1) - (posDot + 1) + 1;
strExtension = strFileName.substr(posDot + 1, len);
上面的代码中strFileName.size()其实就是字符串的 past-of-end 的下标。