当前位置: 首页>>代码示例>>C++>>正文


C++ xr_string::compare方法代码示例

本文整理汇总了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);
}
开发者ID:OLR-xray,项目名称:OLR-3.0,代码行数:50,代码来源:UILines.cpp


注:本文中的xr_string::compare方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。