I am trying to count the number of elements in an array using C. I tried out the following code. But it just returns 83 every time I run the program. What I mean by to count the number of elements is that I need to know the number of elements that we have entered and not the size of the array.
#include<stdio.h>
#include<stdlib.h>
main(){
int a[100], j = 0, i;
a[0] = '0';
a[1] = '1';
a[2] = '2';
a[3] = '3';
a[4] = '4';
a[5] = '5';
for(i=0; i<100; i++){
if(a[i] == '\0'){
}
else
j = j + 1;
}
printf("%d", j);
system("pause");
}
Since the OP amended his code, here is a more correct reply:
This code works ‘by chance’, since you didn’t initialize the array previously.
It’s just ‘luck’, that somewhere in there, the value 0 comes up.
The declaration of an array does NOT zero it.
Use:
For that. That way, the first ‘not overwritten’ byte will return ‘0’.
Reference: http://www.cplusplus.com/reference/clibrary/cstring/memset/
Alternatively, you have to set the ‘delimited’ manually by adding a[x] = 0;
Now, I know you specifically asked for a ‘C’ solution, but if you would like to consider using a C++-Compiler, I suggest looking at the stl of C++.
Here’s a link to get you started: http://www.cplusplus.com/reference/stl/list/
It’s initialized as: