Go Down

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

niekwoo10

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?

WizenedEE

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;
     break;
   }
}

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])

niekwoo10


To do inverse lookup you need to traverse the array
-code-


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

Grumpy_Mike

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.

niekwoo10

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

Go Up