如何知道角色的位置?

时间:2014-06-11 21:14:25

标签: c++ qt

如何从结尾找到第一个字符,但同时指示要查找的字符串结尾的位置? 即我们需要以下功能。

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

1 个答案:

答案 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);