将String数组放在参数中,然后将元素与文字字符串错误进行比较?

时间:2015-05-24 07:17:52

标签: c++

假设我有一个数组

string test = {"test1, "test2"}

我有我的功能

void testing(string test){
  for(int i = 0; i < 2; i++){
    if(test[i] == "test1"){
      cout << "success" << endl;
    }
  }
}

但是当我编译它时,我得到一个错误......为什么会这样? 有不同的方法吗?

2 个答案:

答案 0 :(得分:2)

您的测试变量应声明为数组类型

string test[] = {"test1", "test2"};

您还需要从

更改功能签名
void testing(string test)

void testing(string* test){

答案 1 :(得分:0)

由于字符串数组的错误声明,您编写的代码不会编译。 取代

string test = {"test1, "test2"};

string test[]={"test1, "test2"};

以下代码使用没有函数的数组

#include <iostream>
#include <string>

using namespace std;

string test[]={"test1, "test2"};
for(auto& item:test)
{
    cout<<item<<endl;
}

我认为使用函数的最佳方法是使用vector

#include <iostream>
#include <string>
#include <vector>
using namespace std;

void testing(const vector<string>& strings)
{
    for (auto& item : strings)
    {
        cout << item << endl;
    }
}
int _tmain(int argc, _TCHAR* argv[])
{
    vector<string> strings = { "str1", "str2", "str3" };
    testing(strings);
    cin.get();
    return 0;
}