本文整理汇总了C++中string::Lower方法的典型用法代码示例。如果您正苦于以下问题:C++ string::Lower方法的具体用法?C++ string::Lower怎么用?C++ string::Lower使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类string
的用法示例。
在下文中一共展示了string::Lower方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: autocompletionList
// ----------------------------------------------------------------------------
// TextLanguage::getAutocompletionList
//
// Returns a string containing all words and functions that can be used
// directly in scintilla for an autocompletion list
// ----------------------------------------------------------------------------
string TextLanguage::autocompletionList(string start, bool include_custom)
{
// Firstly, add all functions and word lists to a wxArrayString
wxArrayString list;
start = start.Lower();
// Add word lists
for (unsigned type = 0; type < 4; type++)
{
for (auto& word : word_lists_[type].list)
if (word.Lower().StartsWith(start))
list.Add(S_FMT("%s?%d", word, type + 1));
if (!include_custom)
continue;
for (auto& word : word_lists_custom_[type].list)
if (word.Lower().StartsWith(start))
list.Add(S_FMT("%s?%d", word, type + 1));
}
// Add functions
for (auto& func : functions_)
if (func.name().Lower().StartsWith(start))
list.Add(S_FMT("%s%s", func.name(), "?3"));
// Sort the list
list.Sort();
// Now build a string of the list items separated by spaces
string ret;
for (unsigned a = 0; a < list.size(); a++)
ret += list[a] + " ";
return ret;
}
示例2: getSelectedCommandLine
/* RunDialog::getSelectedCommandLine
* Returns a command line based on the currently selected run
* configuration and resources
*******************************************************************/
string RunDialog::getSelectedCommandLine(Archive* archive, string map_name, string map_file)
{
Executables::game_exe_t* exe = Executables::getGameExe(choice_game_exes->GetSelection());
if (exe)
{
// Get exe path
const string exe_path = getExecutablePath(exe);
if (exe_path.IsEmpty())
return "";
string path = S_FMT("\"%s\"", exe_path);
unsigned cfg = choice_config->GetSelection();
if (cfg < exe->configs.size())
{
path += " ";
path += exe->configs[cfg].value;
}
// IWAD
Archive* bra = theArchiveManager->baseResourceArchive();
path.Replace("%i", S_FMT("\"%s\"", bra ? bra->getFilename() : ""));
// Resources
path.Replace("%r", getSelectedResourceList());
// Archive (+ temp map if specified)
if (map_file.IsEmpty() && archive)
path.Replace("%a", S_FMT("\"%s\"", archive->getFilename()));
else
{
if (archive)
path.Replace("%a", S_FMT("\"%s\" \"%s\"", archive->getFilename(), map_file));
else
path.Replace("%a", S_FMT("\"%s\"", map_file));
}
// Running an archive yields no map name, so don't try to warp
if (map_name.IsEmpty())
{
path.Replace("-warp ", wxEmptyString);
path.Replace("+map ", wxEmptyString);
path.Replace("%mn", wxEmptyString);
path.Replace("%mw", wxEmptyString);
}
// Map name
else
{
path.Replace("%mn", map_name);
// Map warp
if (path.Contains("%mw"))
{
string mn = map_name.Lower();
// MAPxx
string mapnum;
if (mn.StartsWith("map", &mapnum))
path.Replace("%mw", mapnum);
// ExMx
else if (map_name.length() == 4 && mn[0] == 'e' && mn[2] == 'm')
path.Replace("%mw", S_FMT("%c %c", mn[1], mn[3]));
}
}
// Extra parameters
if (!text_extra_params->GetValue().IsEmpty())
{
path += " ";
path += text_extra_params->GetValue();
}
LOG_MESSAGE(2, "Run command: %s", path);
return path;
}
return "";
}
示例3: FindMatches
size_t BasicSearchTree::FindMatches(const string& s,set<size_t> &result,bool caseSensitive,bool is_prefix)
{
// NOTE: Current algorithm is suboptimal, but certainly it's much better
// than an exhaustive search.
result.clear();
string s2,curcmp,s3;
nSearchTreeNode ncurnode;
SearchTreeNode* curnode = 0;
BasicSearchTreeIterator it(this);
SearchTreeItemsMap::iterator it2;
bool matches;
if(!caseSensitive)
s2 = s.Lower();
else
s2 = s;
while(!it.eof())
{
matches = false;
ncurnode = *it;
curnode = m_pNodes[*it];
if(!curnode)
break; // Error! Found a NULL Node
if(curnode->m_depth < s.length())
{ // Node's string is shorter than S, therefore it CANNOT be a suffix
// However, we can test if it does NOT match the current string.
if(!curnode->m_depth)
matches = true;
else
{
s3 = s2.substr(curnode->GetLabelStartDepth(),curnode->GetLabelLen());
curcmp = curnode->GetLabel(this);
if(!caseSensitive)
curcmp = curcmp.Lower();
matches = (s3 == curcmp);
}
}
else
{
if(curnode->GetLabelStartDepth() >= s2.length())
matches = is_prefix;
else
{
s3 = s2.substr(curnode->GetLabelStartDepth());
curcmp = curnode->GetLabel(this);
if(!caseSensitive)
curcmp = curcmp.Lower();
matches = curcmp.StartsWith(s3);
}
if(matches)
{
// Begin items addition
if(!is_prefix)
{
// Easy part: Only one length to search
it2 = curnode->m_Items.find(s2.length());
if(it2 != curnode->m_Items.end())
result.insert(it2->second);
}
else
{
for(it2 = curnode->m_Items.lower_bound(s2.length()); it2 != curnode->m_Items.end(); ++it2)
{
result.insert(it2->second);
}
}
matches = is_prefix;
// End items addition
}
}
it.FindNext(matches);
}
return result.size();
}