我想創建一個字符數組與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