在c++中查找函数

Find function in c++

本文关键字:函数 查找 c++      更新时间:2023-10-16

我正在尝试在字符串中查找chara或char1如果没有找到,我的程序将出现错误消息并退出。这是我的职能,但似乎不起作用。请帮帮我,谢谢。

*更新,如果字符串是a2,我将得到无效消息,只有当字符串是a1时,它才会继续。

   bool hasAor1(const std::string& string)
   {
      return string.find_first_of("a1") != std::string::npos;
   }
   //find valid key, key must have numbers like 1234 instead of 134 
   void validstring(string key)
   {
      if(key.length() == 2)
      {
        hasAor1(key) == false;
        cerr << "invalid key";
      }      
   }

std::find在这里使用会简单得多。

auto iter = find_if(begin(key), end(key),
        [](char v){ return v=='a' || v=='1'; });
if (iter == key.end()) cerr << "invalid key";

函数hasAor1正常。

将带有"hasAor1(key)==false;"的行改为类似的行

如果(!hasAor1(key))cerr<lt;"无效密钥";

所以

   //find valid key, key must have numbers like 1234 instead of 134 
   void validstring(string key)
   {
      if(key.length() == 2)
      {
        if (hasAor1(key) == false)
            cerr << "invalid key";
      }      
   }

目前还不清楚validstring应该做什么。如果密钥长度不是2,该怎么办?这不应该是在回击嘘声什么的吗?目前,它所要做的只是打印一条消息,但前提是密钥长度为2。如果密钥是"543"、"145"或"1a3",您希望发生什么?

代码中的注释"//找到有效密钥,密钥必须有1234而不是134这样的数字"没有意义,因为所有有效密钥的示例都包含字符"1",hasAor1会将其标记为无效。

您可能需要考虑可能的输入变化,以及您希望每个变化发生什么。