从函数返回多个字符串

时间:2012-02-03 14:23:35

标签: c++ string return

我有一个功能,我希望能够返回打印出的内容,然后我可以在页面上打印输出。我将如何返回在这两个if语句中输出的两个字符串?

 std::vector<std::string> el;
      split(el,message,boost::is_any_of("\n"));
      std::string a ("");

          for(int i = 0; i < el.size(); i++)
          {
              if(el[i].substr(0,3) == ".X/")
              {
                  DCS_LOG_DEBUG("--------------- Validating .X/ ---------------")
                  std::string str = el[i].substr(3);
                  std::vector<std::string>st;
                  split(st,str,boost::is_any_of("/"));
                  boost::regex const string_matcher(splitMask[0]);
                  if(boost::regex_match(st[0],string_matcher))
                  {
                      a = "Correct Security Instruction";

                  }
                  else
                  {
                      a = "Incorrect Security Instruction" 
                  }

                  boost::regex const string_matcher1(splitMask[1]);
                  if(boost::regex_match(st[1],string_matcher1))
                  {
                     a = "Correct Security screening result" 
                  }
                  else
                  {
                      a = "Incorrect Security screening result" 
                  }


                  return a;

              }

          }

感谢任何帮助:)

4 个答案:

答案 0 :(得分:3)

例如,您可以返回std::pair个字符串。

答案 1 :(得分:3)

定义一个具有两个适当命名的字符串成员的类,并返回该实例。

然后,开始考虑哪些方法或其他数据对该类有用。

答案 2 :(得分:0)

您可以将传递给函数的std :: vector中的字符串作为引用推送,然后在返回时迭代该向量。

答案 3 :(得分:0)

我会返回std::pairbool个值(一个用于指示指令是否正确,另一个用于指示筛选结果是否正确),并让调用代码解释结果。