我需要打印存储在int
数组中的值,当遇到NULL字符('\0'
)时停止。
所以我有这个代码:
const int display[10] = {1,4,8,2,0,9,2};
int main(){
int i = 0;
for (i = 0; i < 10; i++){
if (display[i] == '\0'){
break;
}
printf("%d\n", display[i]);
}
exit(0);
}
我希望打印display[10]
的所有值,或者在遇到'\0'
时中断,但是我的代码在display[4]
(0)处中断,而不是一直持续到display[6]
。
关于如何实现此目标的任何建议,避免在数组末尾打印空字符?
答案 0 :(得分:2)
空字符'\0'
等于0。这就是循环中仅输出前四个元素的原因。遇到0时会中断。
答案 1 :(得分:2)
在C中,'\0'==0
。如果只想打印已初始化的字段,请在最后一个已初始化的字段之后放置一个前哨(例如,负数),并在遇到前哨或计数到10时中断循环。
const int display[10] = {1,4,8,2,0,9,2,-1 /* a sentinel */};
for (i = 0; i < 10 && display[i] >= 0; i++) {
答案 2 :(得分:0)
您不需要检查是否存在null。首先声明数组而不初始化总数。然后,您可以通过检查数组元素的总数来运行循环。现在的问题是如何获取元素数量?很简单。
const int arr[]= { 1, 2, 3};
int size = sizeof(arr) / sizeof(arr[0]);
for (int i = 0; i < size; i++) {
printf("%d", arr[i]);
}