本文整理汇总了C++中CL_StringRef::set_length方法的典型用法代码示例。如果您正苦于以下问题:C++ CL_StringRef::set_length方法的具体用法?C++ CL_StringRef::set_length怎么用?C++ CL_StringRef::set_length使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CL_StringRef
的用法示例。
在下文中一共展示了CL_StringRef::set_length方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: unescape
inline void CL_XMLTokenizer_Generic::unescape(CL_StringRef &text, const CL_StringRef &search, CL_String::char_type replace)
{
CL_StringRef::size_type read_pos = 0;
CL_StringRef::size_type length = text.length();
CL_StringRef::size_type search_length = search.length();
CL_StringRef::char_type *data = text.data();
while (true)
{
CL_StringRef::size_type next_match = text.find(search, read_pos);
if (next_match == CL_StringRef::npos)
break;
CL_StringRef::size_type copy_size = length - (next_match + search_length);
memcpy(data + next_match + 1, data + next_match + search_length, copy_size * sizeof(CL_StringRef::char_type));
data[next_match] = replace;
length -= search_length - 1;
read_pos = next_match + 1;
if (read_pos > length)
break;
}
text.set_length(length);
}