Anzeige:
Ergebnis 1 bis 3 von 3

Thema: c/c++ und Stapelspeicher

  1. #1
    Registrierter Benutzer
    Registriert seit
    06.02.2001
    Ort
    68xxx Mannheim
    Beiträge
    73

    Question c/c++ und Stapelspeicher

    Hallo !

    Ich brauche mal wieder eure hilfe

    Ich habe wieder ein Übungsaufgabe bekommen mit der ich nicht so ganz zu recht komme. Wie die übungs aufgabe ohne Push und POP geht weiß ich nur wie geht das ganze mit ?

    Hier ist die Aufgabe:

    quote:
    --------------------------------------------------------------------------------
    4. Geben Sie den Code für ein Programm an, dass eine Zeichenkette von der Tastatur einliest, auf einem Stapel zwischenspeichert und rückwärts wieder ausgibt. Benutzen Sie als Stapel einen Vektor(Feld) und geben Sie das Hauptprogramm und die benötigten push- und pop-Funktionen an . (6 Pkt)
    --------------------------------------------------------------------------------



    mfg janosch

  2. #2
    Registrierter Benutzer
    Registriert seit
    25.12.1999
    Ort
    Stuttgart
    Beiträge
    259
    Hi,

    das hier wäre eine Möglichkeit:

    Code:
    #include <stdio.h>
    
    #define MAXLEN 1024
    
    int push( char c );
    const char pop( void );
    
    int main( void )
      {
              char buf[MAXLEN];
              int c = 0;
    
              if( fgets( buf, MAXLEN, stdin ) != NULL )
              {
                      while( c < strlen(buf) - 1 )
                              if( ! push( buf[c++] ) )
                                     break;
    
                      while( (c = pop()) != '\0' )
                              printf( "%c", c );
    
                      printf( "\n" );
                      return( 0 );
              }
    
              return( 1 );
      }
    
    char stack[MAXLEN];
    int count = 0;
    
    int push( char c )
      {
        if( count < MAXLEN )
        {
                stack[count++] = c;
                return( 1 );
        }
        else
                return( 0 );
      }
    
    const char pop( void )
      {
        if( count > 0 )
                return stack[--count];
        else
                return('\0');
      }
    Code:
    micha:~> echo "Diesen Satz bitte mal umdrehen" | ./stack
    neherdmu lam ettib ztaS neseiD
    micha:~>
    Gruß micha
    Geändert von micha (27-06-2002 um 18:01 Uhr)
    IRC: irc.euirc.net #tux

  3. #3
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Sowas ähnliches in C++

    Code:
    #include <vector>
    #include <string>
    #include <iostream>
    
    int main()
    {
        std::string str;
        std::vector<char> stack;
        std::cin >> str;
    
        for (uint i = 0; i < str.size(); ++i)
        {
            stack.push_back(str[i]);
        }
    
    
        while (!stack.empty())
        {
            std::cout << stack.back();
            stack.pop_back();
        }
        std::cout << std::endl;
    
        return 0;
    }
    Ciao,
    _

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •