Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将字符串与字符串数组中的元素进行比较?_C++_Arrays_String_For Loop_Compare - Fatal编程技术网

C++ 如何将字符串与字符串数组中的元素进行比较?

C++ 如何将字符串与字符串数组中的元素进行比较?,c++,arrays,string,for-loop,compare,C++,Arrays,String,For Loop,Compare,我有一个数组,其中包含教室的数据和不同时间的不同氧气读数。因此,用户必须输入特定的教室和时间,我的程序将打印出当时教室的氧气读数。但是,我有一个错误,无法将字符串数组与字符串进行比较。有人能帮我吗 cout << "Please enter the classroom: "; string classroom; cin >> classroom; cout << "Please enter the time: "; string time; cin >&

我有一个
数组
,其中包含教室的数据和不同时间的不同氧气读数。因此,用户必须输入特定的教室和时间,我的程序将打印出当时教室的氧气读数。但是,我有一个
错误
,无法将
字符串数组
字符串
进行比较。有人能帮我吗

cout << "Please enter the classroom: ";
string classroom;
cin >> classroom;
cout << "Please enter the time: ";
string time;
cin >> time;
cout << endl;

string myData[6][13] = {
    { "EN10-5-56" , "500", "700", "2000", "1850", "2000", "800", "750", "2300", "1900", "1600", "750", "700" },
    { "EN10-5-65" , "550", "1600", "1700", "780", "1980", "700", "750", "2300", "780", "800", "650", "550" },
    { "EN14-5-83" , "600", "700", "2000", "1850", "2000", " 600", "650", "700", "200", "800", "750", "700" },
    { "EN14-5-69" , "900", "600", "1950", "780", "800", "590", "620", "760", "1900", "1890", "2000", "700" },
    { "EN18-5-112", "550", "1670", "2000" , "680", "900", "1500", "1800", "2500", "779", "800", "650", "650" },
    { "EN18-5-118", "800", "1890", "2300", "1850", "2000", "800", "750", "1700", "560", "1300", "1500", "850" },
}; // row x column (class x time)


// row x column
for (int i = 0; i < 6; i++) // classrooms (row)
{
    for (int j = 0; j < 13; j++)
    {
        if (myData[i] == classroom) // ERROR HERE
        {
            cout << myData[i] << endl;
        }
    }
}
cout>教室;
时间;

cout
myData
是一个二维数组,但您只提供了一个一维说明符

myData[i]
将为您提供一个
字符串数组
,而不是一个
字符串
实例。您正在为列使用
i
,因此还必须为行提供
j

if( myData[i][j] == classroom ) {
    cout << myData[i][j] << endl;
}
if(myData[i][j]==教室){

cout它是一个2D矩阵。您不能以
myData[i]
的形式访问它的元素。您必须同时给出这两个索引。 将
myData[i]
替换为
myData[i][0]
,将其与
教室进行比较。
将if条件下的
myData[i]
替换为
myData[i][j]


它现在应该可以工作了。

myData
不是
1维数组
,而是
2维数组

因此,您必须尝试以下方法:

cout << "Please enter the classroom: ";
string classroom;
cin >> classroom;
cout << "Please enter the time: ";
string time;
cin >> time;
cout << endl;

string myData[6][13] = {
        { "EN10-5-56" , "500", "700", "2000", "1850", "2000", "800", "750", "2300", "1900", "1600", "750", "700" },
        { "EN10-5-65" , "550", "1600", "1700", "780", "1980", "700", "750", "2300", "780", "800", "650", "550" },
        { "EN14-5-83" , "600", "700", "2000", "1850", "2000", " 600", "650", "700", "200", "800", "750", "700" },
        { "EN14-5-69" , "900", "600", "1950", "780", "800", "590", "620", "760", "1900", "1890", "2000", "700" },
        { "EN18-5-112", "550", "1670", "2000" , "680", "900", "1500", "1800", "2500", "779", "800", "650", "650" },
        { "EN18-5-118", "800", "1890", "2300", "1850", "2000", "800", "750", "1700", "560", "1300", "1500", "850" },
}; // row x column (class x time)


// row x column
for (int i = 0; i < 6; i++) // classrooms (row)
{
    for (int j = 0; j < 13; j++)
    {
        if (myData[i][j] == classroom) // NO ERROR HERE
        {
            cout << myData[i] << endl;
        }
    }
}
cout>教室;
时间;

cout错误是什么?错误C2679二进制“==”:未找到接受“std::string”类型的右操作数的运算符(或没有可接受的转换)
myData
不是
string
的数组,因此
myData[i]
不是一个
字符串
,因为您试图在
if
语句中使用它。它是一个
字符串数组
。所以您正在将
字符串
字符串
数组
进行比较。哦!谢谢!我忘了我的数组需要两个索引。啊!好的,谢谢!那么,我可以问一下如何使用美国的时间吗er输入,连同教室,打印出阅读??谢谢帮助!