switch case statement mit array und länge als Bedingung



  • Ich gebe einer Funktion ein Array mit einer vom Benutzer angegebenen Länge an.

    int abc( char array[], int length)
    for(int j=0;j<length;j++)
    {
    switch (array[j]) // Hier ist das Problem
    {
    blabla
    }
    
    }
    

    Ich weiß das switch case nur Constante Werte als Bedingung akzeptiert, nur ist mein Dilemma das ich irgendwie switch case und for schleife benutzen muss, ist in der Aufgaben Stellung vorgegeben.



  • Korrektur:Es wurde nicht explizit for Schleife genannt nur Schleife allgemein


  • Mod

    Man kann dir nicht helfen, wenn du uns nicht sagst, was du willst.



  • SeppJ schrieb:

    Man kann dir nicht helfen, wenn du uns nicht sagst, was du willst.

    Das Problem ist das:

    case 58>array[j]&&array[j]>47:
    

    'array' is not a constant expression
    the value of 'j' is not usable in a constant expression



  • Noch vergessen.

    for(int j=0;j<length;j++)
    

    'int j' is not const



  • Beim case dürfen nur Konstanten stehen.

    Warum nimmst du kein

    if(isdigit(array[j]))
    

    (allerdings ausserhalb vom switch
    oder (es sind ja nur 10 Fälle)

    switch (array[j])
    { case '0' :
      case '1' :
    ...
      case '9' : blabla; break;
    

    oder ein Compilererweiterung

    switch (array[j])
    { case '0' .. '9) : blabla; break;
    


  • Danke für den Tipp Dirk hat sich jetzt geklärt.


Log in to reply