Thema Datum  Von Nutzer Rating
Antwort
Rot Klammertest
04.05.2015 12:28:00 Reb
NotSolved

Ansicht des Beitrags:
Von:
Reb
Datum:
04.05.2015 12:28:00
Views:
1153
Rating: Antwort:
  Ja
Thema:
Klammertest

Hallo ich bräuchte da mal Hilfe, ich versuche nach Eingab einer Klammer die richtigkeit zuüberprüffen, also ob zu jeder öffnen auch eine schließende kommt.

 

Leider klappt das so irgendwie noch nicht so richtig, könnte da jemand mal drüber schaunen und mir einen Tipp geben ?

 

using System;
using System.Collections;
using System.Linq;
using System.Text;
using System.IO;


namespace ConsoleApplication1
{
    class Program
    {

                 public static void main(String[] args) {
        
//        Konsoleneingabe vorbereiten
//        (die Tastatureingabe wird gelesen und in gepufferter Form gesichert)
        int laenge;
        string str;
        
        Console.WriteLine("Bitte geben Sie einen Klammerausdruck ein:");
               str = Console.ReadLine();
                     
            laenge = str.Length;
            if (laenge == 0)
            {
                Console.WriteLine("Sie haben keine Eingabe getätigt!" + "\n");
                Console.ReadKey();
            }
            if ((laenge % 2) != 0){
            Console.WriteLine("Zeichenkette ist falsch!" + "\n");
            Console.ReadKey();
             }
        
            }
        static void check(String str)
        {
            
            char[] c = str.ToCharArray();
            Stack myStack = new Stack();
            for(int i = 0; i < c.Length; i++){
                //        Die öffnenden Klammern überprüfen und ggf. in den Stack schreiben                
                if (c[i] == '('){
                    myStack.Push('(');
                    }else
                if (c[i] == '[') {
                    myStack.Push('[');
                    }else
                if (c[i] == '{'){
                    myStack.Push('{');
                    }else
                    //        Hier die schliessenden Klammern betrachten

//        Klammer ")"                                    
                if (c[i] == ')'){
                    
//        Überprüfung wenn leer, dann Abbruch
                        if (myStack.Contains(0) == true){
                            Console.WriteLine("Zeichenkette ist falsch!");
                            Console.ReadKey();
                            }
                                            
//        Wenn nicht zugehörige Klammer, dann Abbruch
                        if(myStack.Pop != '('){
                            Console.WriteLine("Zeichenkette ist falsch!");
                            Console.ReadKey();   
                            }                
                }else
                
//        Klammer "]"                                        
                        
                if (c[i] == ']'){
                                            
//        Überprüfung wenn leer, dann Abbruch                                            
                        if (myStack.Contains(0) == true){
                            Console.WriteLine("Zeichenkette ist falsch");
                            Console.ReadKey();
                            }
                        
//        Wenn nicht zugehörige Klammer, dann Abbruch                                                                                            
                        if(myStack.Pop != '['){
                            Console.WriteLine("Zeichenkette ist falsch!");
                            Console.ReadKey();   
                            }
                }else                            
                
//        Klammer "}"                                                
                                    
                if (c[i] == '}'){
                                            
//        Überprüfung wenn leer, dann Abbruch                                                
                        if (myStack.Contains(0)== true){
                            Console.WriteLine("Zeichenkette ist falsch!");
                            Console.ReadKey();
                            }                        
                        
//        Wenn nicht zugehörige Klammer, dann Abbruch                                                                                                    
                        if (myStack.Pop() !='{')    {
                            Console.WriteLine("Zeichenkette ist falsch!");
                            Console.ReadKey();    
                            }
                }else
                {
                    Console.WriteLine("Zeichenkette ist unzulässig!");    
                    Console.ReadKey();
                }
            } 
//        Alle Zeichen abgearbeitet, keine Fehler!       
            Console.WriteLine("Zeichenkette ist korrekt!");
        }      
    }
}

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Klammertest
04.05.2015 12:28:00 Reb
NotSolved