如何从结尾找到第一个字符,但同时指示要查找的字符串结尾的位置? 即我们需要以下功能。
lastIndexOf(char c, int position_from_end);
将会:
QString s("abcadc");
int i = s.mylastIndexOf('c', 0) //6
。
QString s1("abcadc");
int j = s1.mylastIndexOf('c', 1) //3
答案 0 :(得分:1)
在c ++中,使用std::string
方法rfind(char c, size_t pos)
将在索引pos
之前的字符串部分中搜索字符。 (如果您要使用搜索子字符串的rfind
版本,则匹配的第一个字符必须在pos
之前。
pos
默认为string::npos
,它大于任何有效的字符串索引,因此会导致搜索从字符串的末尾开始。
如果未找到匹配项,则返回string::npos
。
如果要指定字符串末尾的偏移量,可以从字符串的长度中减去偏移量:
std::string s;
//...
size_t p = s.rfind(ch, s.size() - offset);