本文整理汇总了C++中sf::String::substring方法的典型用法代码示例。如果您正苦于以下问题:C++ String::substring方法的具体用法?C++ String::substring怎么用?C++ String::substring使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类sf::String
的用法示例。
在下文中一共展示了String::substring方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: translate
sf::String CommandTranslator::translate(const sf::String& cmd) const
{
//Commands shall be in the following format:
//1. For Variables
// {set|get} {varname}
//2. For functions
// {run} {funcname} {param}*
size_t i = 0;
for(i = 0; i < cmd.getSize(); i++)
if(!isspace(cmd[i])) break;;
size_t lastpos = 0;
int op = 0;
while(i < cmd.getSize())
{
if(cmd.substring(i, 3) == "get")
{
op = 1;
}
else if(cmd.substring(i, 3) == "set")
{
op = 2;
}
else if(cmd.substring(i, 3) == "run")
{
op = 3;
}
i = i + 4;
for(; i < cmd.getSize(); i++)
if(!isspace(cmd[i])) break;
lastpos = i;
for(; i < cmd.getSize(); i++)
if(isspace(cmd[i])) break;
sf::String str = cmd.substring(lastpos, i - lastpos);
printf("Text is \"%s\"\n", str.toAnsiString().c_str());
++i;
std::vector<sf::String> params;
while(i < cmd.getSize())
{
for(; i < cmd.getSize(); i++)
if(!isspace(cmd[i])) break;
lastpos = i;
for(; i < cmd.getSize(); i++)
if(isspace(cmd[i])) break;
sf::String param = cmd.substring(lastpos, i - lastpos);
printf("Param is \"%s\"\n", param.toAnsiString().c_str());
params.push_back(param);
}
if(op < 3) //Var operation
{
auto it = m_vars.begin();
if((it = m_vars.find(str)) != m_vars.end())
{
return it->second(op, params.size() > 0 ? params[0] : sf::String());
}
}
else
{
//Run operation
auto it = m_funcs.find(str);
if(it != m_funcs.end())
{
it->second(params);
return sf::String();
}
}
i++;
}
return sf::String();
}