tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
597
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    benni miles benni miles ist offline Mitglied Silber
    Registriert seit
    Feb 2006
    Beiträge
    52
    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
     

  2. #2
    cesupa cesupa ist offline Mitglied Brokat
    Registriert seit
    Sep 2004
    Beiträge
    329
    Hallo,

    also wenn ich das richtig verstanden habe suchst du sowas:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    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
     

  3. #3
    benni miles benni miles ist offline Mitglied Silber
    Registriert seit
    Feb 2006
    Beiträge
    52
    Ja genau so etwas mein ich nur das ich array Elemtente miteinander vergleiche ich hab das jetzt so erweitert.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    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
     

  4. #4
    Avatar von Online-Skater
    Online-Skater Online-Skater ist offline Mitglied Brillant
    Registriert seit
    Sep 2004
    Ort
    Rostock
    Beiträge
    891
    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.
     

Ähnliche Themen

  1. [Perl] Zwei Arrays an Element 1 vergleichen
    Von chill0r55555 im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 4
    Letzter Beitrag: 15.09.09, 15:45
  2. Antworten: 9
    Letzter Beitrag: 05.03.09, 18:37
  3. Array Element vergleichen
    Von danza im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 27.02.08, 14:08
  4. Element zu Array
    Von Morphinus21 im Forum Java
    Antworten: 7
    Letzter Beitrag: 22.01.08, 10:40
  5. Antworten: 4
    Letzter Beitrag: 07.11.04, 20:41