Brauche dringend hilfe



  • habe mal eine frage bin nicht wirklich fit in der sprache und wollte nur fragen wie man in einem satz von jedem wort nur die ersten 2 buchstaben ausgibt und wie man die buchstaben dann alphabetisvch anordnet könnte mir da jemand helfen
    danke schonnmal im voraus



  • Wie immer:
    1.) Erstmal auf dem Papier durchgehen,
    2.) dann "Regel" feststellen,
    3.) dann in der gewünschten Programmiersprache umsetzen und
    nur, wenn dann noch konkrete Probleme mit dem daraus entstandenen Programmcode bestehen
    4.) Einen aussagekräftigen Thread erstellen (Titel, bereits entstandenen Source in cpp-Tags, genaue Beschreibung des unerwünschten Verhaltens, ....)

    Gruß,

    Simon2.



  • meinst Du so'n Programm:

    #include <algorithm>    // sort, copy
    #include <iostream>
    #include <iterator>     // ostream_iterator
    #include <string>
    #include <vector>
    
    template< typename E, typename Traits >
    bool is_endl( std::basic_istream< E, Traits >& in )
    {
        using namespace std;
        std::basic_streambuf< E, Traits >* sb = in.rdbuf();
        if( !sb ) return false;
        const std::ctype< E >& ctype_ = std::use_facet< std::ctype< E > >( in.getloc() );
        for( Traits::int_type m = sb->sgetc(); ; m = sb->snextc() )
        {
            if( Traits::eq_int_type( m, Traits::eof() )
                    || !ctype_.is( std::ctype_base::space, Traits::to_char_type( m ) ) )
                return false;
            if( Traits::to_char_type( m ) == '\n' )
            {
                sb->sbumpc();
                return true;
            }
        }
    }
    
    int main()
    {
        using namespace std;
        cout << "Geben sie bitte einen Satz ein" << endl;
        vector< char > zweite_buchstaben;
        for( string wort; !is_endl( cin ) && cin >> wort; )
        {
            if( wort.size() >= 2 )
                zweite_buchstaben.push_back( wort[1] ); // 2.Buchstaben des Wortes merken
        }
        copy( zweite_buchstaben.begin(), zweite_buchstaben.end(),   // ausgeben
            ostream_iterator< char >( cout << "Die 2.Buchstaben sind: ", " " ) );
        cout << endl;
        sort( zweite_buchstaben.begin(), zweite_buchstaben.end() ); // sortieren
        copy( zweite_buchstaben.begin(), zweite_buchstaben.end(),   // nochmal ausgeben
            ostream_iterator< char >( cout << "nochmal sortiert: ", " " ) );
        cout << endl;
        return 0;
    }
    

    :xmas2: Werner



  • vom aufbau genau so aber ich habe das bisschen anders gelöst also programmiert ich habe es versucht mit einer indexvariable zu lösen das er die 2 ersten buchstaben ausgibt aber hat mir sehr weitergeholfen dank dir echt sehr nette hilfe 😉



  • Auch eine Möglichkeit:

    string line = "", word = "";
        getline( cin,line );
    
        vector<char> zweite_bustaben;
        istringstream splitter(line);
    
        while( splitter >> word ) 
            if( word.size() >= 2) zweite_bustaben.push_back(word[1]);
    
        // Rest siehe Werner
    

    :xmas1:


Anmelden zum Antworten