c++字符数组问题?

来源:百度知道 编辑:UC知道 时间:2024/05/10 12:45:54
#include<iostream>
#include<string>
using namespace std;
int main()
{char p[12],m[12],t,;
int i;
for(i=0;i<3;i++)
{
cin>>t;
p[i]=t;
}

cout<<"请再次输入:";
for(i=0;i<3;i++)
{
cin>>t;
m[i]=t;
}
if(m==p)
cout<<"正确"<<'\n';
else
cout<<"错误"<<'\n';}
我的问题是两次我都输入同样的字符,,那么两个数组应该是一样的啊!应该显示正确啊,为什么会显示为错误!!
有什么方法能去比较一下吗??
比方说我输入的数组为1*/
下一次还输入同样的数组,显示正确,反之显示错误??

m 和 p是指针。
不可以这样比较。
因为你是字符数组,和普通数字数组一样处理就好了。
if(strcmp(m,p)==0)
cout<<"正确"<<'\n';
else
cout<<"错误"<<'\n';

肯定是会显示错误的
因为数组名表示数组的首地址,要比较是否一样要一个一个去比较数组的成员, if(m==p)
m和p数组的首地址是不一样的
就出错了

改了一下,你要注意,你的数组有12个数,而你只输入了3个,那还有9个数是不确定的,系统是随机给的,所以要先设置成0,才可以比较#include<iostream>
#include<string>
using namespace std;
int main()
{char p[12]={0},m[12]={0},t;
int i;
for(i=0;i<3;i++)
{
cin>>t;
p[i]=t;
}

cout<<"请再次输入:";
for(i=0;i<3;i++)
{
cin>>t;
m[i]=t;
}

for(i=0;i<12;i++)
{
if(m[i]!=p[i] )
{cout<<"错误"<<'\n'; ///////////数组中只要有一个不一样的就会输出错误,然后退出
exit(1);
}

}cout<<"正确"<<'\n';}