我想把输入的字符都存入一个字符数组里,请问该怎么做?

#include

using namespace std;

int main()

{

char *a[5];
for (int i = 0; i < 5; i++){
    char t[100];
    cin >> t;
    a[i] = t;
}
for (int j = 0; j < 5; j++){
    cout << a[j] <<endl;
}
return 0;

}

现在的这段代码总是只能输出我输入的最后一个字符串,请问错在哪,该怎么该呢?

for (int i = 0; i < 5; i++){
char t[100];
cin >> t;
a[i] = t;
}
->

for (int i = 0; i < 5; i++){
a[i] = new char [100];
cin >> a[i];
}

朋友,你到底是要输出字符串还是字符?
字符串要用char数字存放,并且末尾为0,字符可以用char存放,你要存放多个字符,那就是字符串,末尾请保留一个0的位置。

1.你要存放字符的话,char t[100];cin >> t;a[i] = t;这三句怎么能实现呢?,每次t里面都有两个字符,你把两个字符存在一个char里?
2.你要存放字符串的话,char *a[5];这可不能存放5个字符串,只能存放5个字符或者一个4字符的字符串