Go Down

Topic: Get array value index by searching value (Read 3 times) previous topic - next topic


In a project i'm making, i need to use arrays. Now i have a question:
Is there a way to find a value's index just by searching for the value?

For example:

int arrayVals[] = {2, 4, -8, 3, 5, 1};

Now for example when i input "-8" into a function, i need it to return the index of -8, which is 2. How would i go about doing that?

Oh and how can i get the length of an array?


To do inverse lookup you need to traverse the array
Code: [Select]

const int arysz = 6;
int ary[arysz] = {4, 32, 6, 2, -1, 5}
int wantedval = -1;
int wantedpos;
for (int i=0; i<arysz; i++) {
   if (wantedval = ary[i]) {
     wantedpos = i;

If they're in order, you can also do a binary search (google it)

For finding array length, the best method is to use the above method and store a separate variable for the length. However, this works, too
Code: [Select]

int ary[12];
int len = sizeof(ary)/sizeof(ary[0])


To do inverse lookup you need to traverse the array

Thank you. Now what happens when i search for a value that isn't in the array?


Then wantedval = -1 and you know you didn't find it.
Note make the initial value of wantedval outside the range of numbers you are expecting in the array.


Will this code work if i expand the array during execution of the code?

Go Up