在c中检查Array中的值

时间:2015-12-17 04:05:16

标签: c arrays

如何搜索数组以确定它是否包含一组值 在数组的特定元素范围内(可能是从位置2到位置7,第一个元素是帧的开始,长度等)

if input_data[1:5] == (45, 35, 230, 28)

if contains 45 
    send sensor 1 data;
if contains 35
    send sensor 2 data;
if contains 230 
    send sensor 3 data;
if contains 28
    send sensor 4 data;

它可能包含上述值的任何组合(order),或者不包含任何一个元素,如果找不到相关元素,则应该停止发送数据

我正在尝试根据收到的元素发送一些请求的数据

更新!!

根据我需要在后台发送请求的传出数据的已接收数据,仅收到一次数据(仅在更新时),

if input_data[1:5] == (45, 35, 230, 28)
if contains 45 
    send_Sensordata1 = 1

if contains 28
    send_Sensordata4 = 1

在其他功能中(在后台运行)

if send_Sensordata1 ==1 
   do something here(main sending stuff goes here)
if send_Sensordata4 ==1 
   do something here (main sending stuff goes here)

所以在第一个输入数据中我得到了所有元素,然后发送了请求的数据,但是如果下一个输入数据中缺少一个元素,我需要停止发送该特定请求的传出数据(如切换)

2 个答案:

答案 0 :(得分:3)

您必须遍历array并每次都查找这些特定元素。

for(i=2; i<7; i++)
{
    if(array[i] == 45) 
        send sensor 1 data;
    else if(array[i] == 35)
        send sensor 2 data;
    else if(array[i] == 230) 
        send sensor 3 data;
    else if(array[i] == 28)
        send sensor 4 data;
}

答案 1 :(得分:0)

数组循环将从1开始以获取元素2,就像在c数组中从0开始一样。

for(i=1; i<7; i++)
{
    if(array[i] == 45) 
        send sensor 1 data;
    else if(array[i] == 35)
        send sensor 2 data;
    else if(array[i] == 230) 
        send sensor 3 data;
    else if(array[i] == 28)
        send sensor 4 data;
}