本文整理汇总了C++中xr_string::compare方法的典型用法代码示例。如果您正苦于以下问题:C++ xr_string::compare方法的具体用法?C++ xr_string::compare怎么用?C++ xr_string::compare使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xr_string
的用法示例。
在下文中一共展示了xr_string::compare方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetColorFromText
// %c[255,255,255,255]
u32 CUILines::GetColorFromText(const xr_string& str)const {
// typedef xr_string::size_type size;
StrSize begin, end, comma1_pos, comma2_pos, comma3_pos;
begin = str.find(BEGIN);
end = str.find(END, begin);
R_ASSERT2(npos != begin, "CUISubLine::GetColorFromText -- can't find beginning tag %c[");
R_ASSERT2(npos != end, "CUISubLine::GetColorFromText -- can't find ending tag ]");
// try default color
if (npos != str.find("%c[default]", begin, end - begin))
return m_dwTextColor;
// Try predefined in XML colors
// CUIXmlInit xml;
for (CUIXmlInit::ColorDefs::const_iterator it = CUIXmlInit::GetColorDefs()->begin(); it != CUIXmlInit::GetColorDefs()->end(); ++it)
{
int cmp = str.compare(begin+3, end-begin-3, *it->first);
if (cmp == 0)
return it->second;
}
// try parse values separated by commas
comma1_pos = str.find(",", begin);
comma2_pos = str.find(",", comma1_pos + 1);
comma3_pos = str.find(",", comma2_pos + 1);
R_ASSERT2(npos != comma1_pos, "CUISubLine::GetColorFromText -- can't find first comma");
R_ASSERT2(npos != comma2_pos, "CUISubLine::GetColorFromText -- can't find second comma");
R_ASSERT2(npos != comma3_pos, "CUISubLine::GetColorFromText -- can't find third comma");
u32 a, r, g, b;
xr_string single_color;
begin+=3;
single_color = str.substr(begin, comma1_pos - 1);
a = atoi(single_color.c_str());
single_color = str.substr(comma1_pos + 1, comma2_pos - 1);
r = atoi(single_color.c_str());
single_color = str.substr(comma2_pos + 1, comma3_pos - 1);
g = atoi(single_color.c_str());
single_color = str.substr(comma3_pos + 1, end - 1);
b = atoi(single_color.c_str());
return color_argb(a,r,g,b);
}