首页 > 解决方案 > 过滤c中的垃圾值

问题描述

我只想打印数组中存在的值。但它也显示了垃圾值。

#include<stdio.h>
#include<stdlib.h>


int main(){
  int arr[12];
  int i;

  arr[0] = 1;
  arr[1] = 2;
  arr[2] = 3;
  arr[4] = 5;

  for(i = 0; i<12;i++){
      if(arr[i] == '\0')
      {
        printf("\nNull");
      }
      else
        printf("\n %d",arr[i]);
   }

}

====== 输出 ======

1
2
3
Null
5
1
-2139062272
Null
-13136
Null
Null
Null
Process returned 0 (0x0)   execution time : 0.065 s
Press any key to continue.

如何过滤所有垃圾值并仅显示初始化值?或者,如何清除所有垃圾值?

标签: c

解决方案


如何过滤所有垃圾值并仅显示初始化值。

除非您为垃圾值定义了特定规则,否则没有什么可以将“垃圾值”与数组中的实际值区分开来,否则整数就是整数。

如何清除所有垃圾值。

同样,除非您有关于垃圾值是什么的规则,否则您的替代选择是memset使用预先想要的值的数组,即用一个值初始化数组中的所有值。

#include <stdio.h>
#include <string.h>

int main()
{
    int arr[12];
    memset(arr, '\0', sizeof arr);
   /* This fills arr with the null character */
}

或者,您可以将数组归零

int arr[12] = {0};

推荐阅读