array element vergleichen

benni miles

Mitglied
Hi,

ich möchte eine Eingabe mit mehreren Zeichen auf deren Richtigkeit zb (a b c d) überprüfen. Dazu lese ich die Zeile per getline in ein array ein. Wenn nun andere Buchstaben wie a b c d eingegeben wurden soll hier eine Fehlermeldung ausgegeben werden. Ich habe mir gedacht ich lege einen zweites array an mit diesen Werten (a b c d) lasse per for schleife den eingegeben array einzeln durchlaufen und mit dem konstanten vergleichen. Meine Frage wie kann ich einzelne Array Elemente im eingegeben Array mit dem gesamten konstanten array vergleichen? Bsp. wenn a eingeben wurde soll er im konstanten nach einem a suchen wenn er es findet keine Fehlermeldung.

lg
 
Hallo,

also wenn ich das richtig verstanden habe suchst du sowas:

Code:
char c1="a";
char c2[]="abcd";
bool fehler=true;

for(int i=0;i<strlen(c2);i++)
{
        if(c1==c2[i])
        fehler=false;  //wenn Zeichen gefunden -> kein Fehler 
}

if(fehler)
cout<<"Fehler!"<<endl;

Gruß
cesupa
 
Ja genau so etwas mein ich nur das ich array Elemtente miteinander vergleiche ich hab das jetzt so erweitert.

Code:
char c1[8];
char c2[]="abcd";
bool wrong_insert=true;


cin.getline(c1, 8, '\n');
for (int x=0;x<strlen(c1);x++)
{
    for(int i=0;i<strlen(c2);i++)
    {
       if(c1[x]==c2[i])
       wrong_insert=false; 
    }
    if(wrong_insert)
    cout<<"Fehler!"<<endl;
}

Es funktioniert wenn ich jetzt t eingib dann sagt mir das script Fehler. Wenn ich nun at eingib sagt er mir keinen fehler obwohl er beim 2ten durchlauf einen Fehler asugeben müsste. Was mach ich falsch

lg
 
Das liegt daran, dass der Fehler beim "a" auf false gesetzt wird und beim "t" nicht wieder auf true. Bau eine Fallunterscheidung (if else) ein, die im Fehlerfall die Schleife abbrechen sollte, deine Fehlermeldung kommt dann außerhalb der for-schleife. (!)
 
Zurück