我想创建一个字符数组与X个字符。字符数组打印1字符短什么我分配
我需要第一个X-1字符为空格,我需要第X个字符为*
。
我写了下面的:
int i = 0;
int X = 5;
char spaces[X]; //In this case X is 5 so the array should have indexes 0 - 4
for(i = 0; i < X; i++) {
spaces[i] = '*'; //I start by setting all 5 char's equal to '*'
printf("spaces = '%s'\n", spaces); //This was to make sure it ran the correct # of times
}
该段的输出是每一次以下,“GH”是不同的:
spaces = '*gh'
spaces = '**h'
spaces = '***'
spaces = '****'
spaces = '****'
为什么空间只能长到4代替5个字符? 不应该有空格[4] ='*';被称为?
设置整个字符串等于后“*”我跑了循环第二:
for(i = 0; i < X-1; i++) {
spaces[i] = ' ';
}
然后应该设置的一切,但第十届字符等于“”,但由于该字符串行事像它的仅长X-1个字符,整个事情被设置为空间和它出来像这样
spaces = ' ';
4个空格,当我需要4位后跟*
。
的最后一个字符是'空terminator''\ 0'。 – Raindrop7
事实上,你可以使用'Xth'元素来存储另一个字符,但你会得到垃圾输出附加到你的输出。\ – Raindrop7
像[this](https://ideone.com/zHaPla) – BLUEPIXY