C++ 二维数组搜索错误

标签 c++ arrays multidimensional-array intellisense strcmp

我正在尝试在二维数组中搜索字符串。

二维数组包含姓名和生日。

我想搜索一个名字并显示他们的生日。

当我尝试使用 strcmp 查看输入的名称是否与数组中的任何名称进行比较时,我收到此错误:

    IntelliSense: no suitable conversion function from "std::string" to "const char *" exists

这是我的部分代码:

#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;

int main()
{

char name[100];

string firstnames[2][4]= { {"John", "Emily", "Juan", "Sally"},
{"Nov 6", "Jan 13", "Oct 10", "Mar 29"} };

cout << "Enter a name: \n";
cin >> name; 

if (strcmp(name, firstnames[0][0]) == 0)
{

}
}

我不明白如何解决这个错误?我有另一个类似的错误,但是当我将名称更改为 char 数组而不是字符串时它就消失了。所以,我认为这与此有关,但我不知道如何将输入的名称与数组进行比较以找到匹配项。

最佳答案

既然您已经在使用字符串类,为什么不直接将 name 设为字符串对象

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

int main()
{

string name;

string courses[2][4]= { {"John", "Emily", "Juan", "Sally"},
{"Nov 6", "Jan 13", "Oct 10", "Mar 29"} };

cout << "Enter a course name: \n";
cin >> name; 

if (name == courses[0][0])
{
    cout << "Done!" << endl;
}
}

关于C++ 二维数组搜索错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19480128/

相关文章:

c++ - 无序映射 : Own Value Type Issue

c++ - 从 txt 文件中读取 2 列

c++ - 简单的 char* 内存分配不起作用

C++ 重载运算符 +()

arrays - 如何在 Qore 中将长列表分成几部分

ruby 将定界字符串数组转换为散列

arrays - 链表如何比插入和删除操作的数组更快,尽管它对两种数据结构都需要 O(n)?

php 多维数组,内爆两次?

python - 二维数组每列的第一个和最后一个数字 1 的索引

multidimensional-array - F# - 将锯齿状数组转换为 Array2D