这么小的程序错在哪里?

来源:百度知道 编辑:UC知道 时间:2024/05/28 10:58:28
#include <iostream.h>

void main()
{
char m_id;
char * b[]={"100001","13213","112465","1324123","2341234","23423","13241","12341234","2341","34234"};
cin>>m_id;
for(int i=0;i<10;i++)

if(m_id==(*(b+i)))
{
cout<<"hehe";
break;
}

if(m_id!=(*(b+i)))
{
cout<<"xixi";
}
}

为什么会有4个错误呢?请高手帮我改改。
但是cout<<*(b+1);可以输出13213啊,所以这种写法应该也没问题吧?问题出在哪里呢?

#include <iostream>
using namespace std;

int main()
{
char m_id[50];
char *b[]={"100001","13213","112465","1324123","2341234","23423","13241","12341234","2341","34234"};
cin>>m_id;
for(int i=0;i<10;i++)
{
if(strcmp(m_id,*(b+i))==0)
{
cout<<"hehe";
break;
}
}

if(i>=10)
{
cout<<"xixi";
}
return 0;
}

你把字符、字符串、和字符串数组的概念搞混了