求问关于字符串的有关问题

求问关于字符串的问题
#include <iostream>
#include <string>
using namespace std;

int main()
{
char a[5];
char b[5];
cin >> a;
cin >> b;
cout << strcmp(a, b)<<endl;
return 0;
}

我用两个12345来测试,为什么最后会崩溃?
------解决方案--------------------
还存存'\0' ,但数组长度只有5.修改数组长度为6
------解决方案--------------------
额,弄错
#include <iostream>
#include <string>
using namespace std;

int main(){
char a[5];
char b[5];
cout<<"现在输入a字符串"<<endl;
for(int i=0;i<sizeof(a)+1;i++)
{

cin >> a[i];
}
cout<<"现在输入b字符串"<<endl;
for(int j=0;j<sizeof(b)+1;j++)
{


cin >> b[j];
}

cout<<strcmp(a,b)<<endl;
return 0;
}