繁体   English   中英

在C中检查Array中的值

[英]Checking of values within Array in c

我如何搜索数组以查明它是否在数组元素的特定范围内包含一组值(可能从位置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;

它可能包含上述值的任何组合(顺序) ,或者不包含任何元素,并且如果未找到关联的元素,则应停止发送数据

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

更新 !!

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

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)

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

您必须遍历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开始获得元素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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM