c++ string 输出问题,为什么以下代码不输出?

#include
#include
#include
using namespace std;
int main()
{
string a[2];
string b="asdfg";
int i;
int n=b.size();
for( i=0;i<b.size();i++)
{
a[0][i]=b.at(i);

}
a[0][i]='\0';
cout<<a[0]<<endl;//什么都不输出
cout<<a[0].c_str()<<endl;//输出asdfg 
cout<<a[1].c_str()<<endl;//没有赋值还是,输出asdfg ,为什么不是没有输出。 

return 0;
}

int n=b.size();
a[0].resize(6, '\0'); //加上