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


C++ String::substring方法代码示例

本文整理汇总了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();
	}
开发者ID:cwriter,项目名称:SFMLGame,代码行数:87,代码来源:GameConsole.cpp


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