如何在其中打印char数组和某个字符?

时间:2017-06-27 13:45:18

标签: c++ arrays char

我最近一直在审核我的C ++。但是我遇到了关于打印char数组的难题。代码如下:

int n = 5;
char *array1 = new char[n];
for (unsigned int i = 0; i < n - 1; i++)
    array1[i] = (char)i;
cout << array1 << endl;
cout << array1[3] << endl;
cout << *array1 << endl;

三条cout线都不起作用。谁能告诉我为什么?

2 个答案:

答案 0 :(得分:1)

array1[0] == 0cout << array1array1解释为指向NUL终止字符串的指针,并且因为第一个字符实际上是NUL,所以该字符串为空。

cout << array1[3]会打印一个带有ASCII代码3的字符。它是一个不可打印的字符,肉眼看不到。不确定你期望在那里看到什么输出。

答案 1 :(得分:0)

作为一个单独的答案,您似乎正在尝试获取具有以下内容的字符串:array =“1234 ....(n-1)”

尝试:

for (int i = 0; i<(n-1); i++)
    array1[i] = (char)i - '0';