(C) String array

Aus TippvomTibb
Zur Navigation springen Zur Suche springen

Allgemeines

String in einem Array ist in C immer wieder ein Fallstrick, zumindest bei mir.

Ich benutze in meinen Prograemmchen schon mal ein String-Array um Strings zu vergleichen. Das sieht z.B. dann so aus.

    uint8_t direction=0; // 1 means down, out; 2 means up, in
    const char directions1[3][6]={"down","out","on"};
    const char directions2[3][6]={"up","in","off"};
    const char directions3[3][6]={"halt","stop","stopp"};
    payloadStr.toLowerCase();
    //MQTTClient.publish(outRawTopic.c_str(), payloadStr.c_str());

    for(uint8_t i=0;sizeof(directions1[0]);i++){
      if (strcmp(payloadStr.c_str(),*(directions1+i))==0)direction=1;
    }
    for(uint8_t i=0;sizeof(directions2[0]);i++){
      if (strcmp(payloadStr.c_str(),*(directions2+i))==0)direction=2;
    }
    for(uint8_t i=0;sizeof(directions3[0]);i++){
      if (strcmp(payloadStr.c_str(),*(directions3+i))==0)direction=3;
    }

Quelle

gute Quelle