C ++在多个字符串中查找字符串

时间:2018-02-01 20:00:11

标签: c++ string find

我正在制作一个程序,您可以键入一个字母组合,例如''并且程序找到包含该两个字母序列的国家。我只想要它搜索一个两个字母的组合,但如果还有一种方法来检查三个字母的序列,那么这将是一个额外的奖励。到目前为止,我有一个字符串数组,我想保持这种方式。这是我到目前为止所做的,现在它只能找到相同的字符串,因为我这样设置它,我想把它改成它找到有两个字母序列的国家。谢谢!

setxor()

3 个答案:

答案 0 :(得分:0)

您可以像这样使用string::find(const string&)

if (Countries[i].find(combination) != std::string::npos) {

将条件if(combination == Countries[i]) {替换为该条件,以在字符串内容中搜索

答案 1 :(得分:0)

您可以使用const titleCase = str => str.replace(/\b(\w)/g, f => f.toUpperCase()); console.log( titleCase("hello world") )

std::copy_if

然后匹配国家/地区将在auto end = std::copy_if( std::begin( Countries ), std::end( Countries ), std::begin( Stored ), [combination]( const std::string &ct ) { return ct.find( combination ) != std::string::npos; } ); 范围内。

此代码虽然可能不适用于大写字母,但更改它非常简单,例如将[std::begin( Stored ),end[替换为您自己的代码,忽略大小写。

答案 2 :(得分:0)

遍历所有潜在的匹配。 测试每一个匹配。 如果匹配,请将其添加到匹配项目列表中。

string string_to_find = "an";

for (auto country : Countries)
  if (country.find( string_to_find ) != country.npos)
    Stored[number_stored++] = country;