tb_long_t tb_string_cstrirstr(tb_string_ref_t string, tb_size_t p, tb_char_t const* s2) { // check tb_char_t const* s = tb_string_cstr(string); tb_size_t n = tb_string_size(string); tb_assert_and_check_return_val(s && p && p < n, -1); // done tb_char_t* q = tb_strnirstr(s + p, n, s2); return (q? q - s : -1); }
/* ////////////////////////////////////////////////////////////////////////////////////// * interfaces */ tb_char_t* tb_strirstr(tb_char_t const* s1, tb_char_t const* s2) { tb_assert_and_check_return_val(s1, tb_null); return tb_strnirstr(s1, tb_strlen(s1), s2); }