String sortieren



  • afokam schrieb:

    Ich muß zwar nicht schreiben.

    Dann verwende die Methode von finix, ganz am Anfang des Threads. Wozu willst Du denn hier Zeiger verwenden?



  • Wir haben die Antwort!

    ompilierung läuft...
    main.cpp
    C:\Dokumente und Einstellungen\All Users\Desktop\Auf5\main.cpp(76) : error C2374: 'it' : Neudefinition; Mehrfachinitialisierung
    C:\Dokumente und Einstellungen\All Users\Desktop\Auf5\main.cpp(69) : Siehe Deklaration von 'it'
    C:\Dokumente und Einstellungen\All Users\Desktop\Auf5\main.cpp(78) : warning C4508: 'main' : Funktion sollte einen Wert zurueckgeben; Ergebnistyp 'void' angenommen
    Fehler beim Ausführen von cl.exe.

    main.obj - 1 Fehler, 1 Warnung(en)

    kannst du noch was? 🙂



  • dieser Beitrag :

    #include <iostream>
    #include <string>
    #include <algorithm>

    int main()
    {
    const std::size_t month_count = 13;
    std::string arr_month[month_count]={"Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember", "Unknown"};

    for (std::size_t month = 0; month < month_count; ++month)
    std::cout << arr_month[month] << std::endl;;

    std::cout << "Sort array!" << std::endl;
    std::sort(arr_month, arr_month + month_count);
    std::cout << "Array sorted!" << std::endl;

    for (std::size_t month = 0; month < month_count; ++month)
    std::cout << arr_month[month] << std::endl;
    }

    liefert mir folgende ergebniss

    ompilierung läuft...
    main.cpp
    C:\Dokumente und Einstellungen\All Users\Desktop\Auf5\main.cpp(34) : error C2039: 'size_t' : Ist kein Element von 'std'
    C:\Dokumente und Einstellungen\All Users\Desktop\Auf5\main.cpp(37) : error C2039: 'size_t' : Ist kein Element von 'std'
    C:\Dokumente und Einstellungen\All Users\Desktop\Auf5\main.cpp(44) : error C2039: 'size_t' : Ist kein Element von 'std'
    C:\Dokumente und Einstellungen\All Users\Desktop\Auf5\main.cpp(44) : error C2374: 'month' : Neudefinition; Mehrfachinitialisierung
    C:\Dokumente und Einstellungen\All Users\Desktop\Auf5\main.cpp(37) : Siehe Deklaration von 'month'
    C:\Dokumente und Einstellungen\All Users\Desktop\Auf5\main.cpp(46) : warning C4508: 'main' : Funktion sollte einen Wert zurueckgeben; Ergebnistyp 'void' angenommen
    Fehler beim Ausführen von cl.exe.

    main.obj - 4 Fehler, 1 Warnung(en)

    ich habe aber keine Idée 😮



  • Welcher Compiler ist das? Visual C++ 6.0?



  • es ist 6.0



  • Hmm dann pack Visual C++ 6.0 mal direkt in den Mülleimer und hol dir Visual C++ 2005 Express Edition. Der ist kostenlos und aktuell. Mein Code ist für gewöhnlich korrekt.



  • danke!
    mache ich! 😕 😕



  • Hi!

    Wer sagt mir wo meinen Fehler Liegt?

    #include<iostream>
    #include<string>
    using namespace std;

    class Name
    {
    private:
    char vorname[20];
    char *ptrvorname;
    char nachname[20];
    char ptrnachname;
    int laenge1,laenge2;
    public:
    void set_first(char
    first)
    {
    cout<<"\nVorname eingeben" ;
    cin>>vorname;
    laenge1=strlen(vorname);
    for(int i=0;i<laenge1;i++)
    cout<<" "<<vorname[i];
    ptrvorname=vorname[i];
    ptrvorname=new char[strlen(first)+1];
    strcpy(vorname,first);
    }
    void set_last(char
    last)
    {
    cout<<"\nNachname eingeben :";
    cin>>nachname;
    laenge2=strlen(nachname);
    for(int i=0;i<laenge2;i++)
    cout<<" "<<nachname[i];
    *ptrnachname=nachname[i];
    ptrnachname=new char[strlen(last)+1];
    strcpy(nachname,last);
    }
    char *geht_first(void)
    {
    return vorname;
    }

    char *get_last(void)
    {
    return nachname;
    }

    //int check();
    };

    int main()
    {
    Name Student;
    Student.set_first(*first);
    Student.set_last(*last);
    }

    Dass problem liegt schon bei meine Main funktion.

    Ich will dieses Programm testen! :p



  • Wie wärs mal mit cpp-Tags? So beim überfliegen wüsst ich nicht woher first und last herkommen sollten.



  • Und außerdem sind die set_first() und set_last() Methoden eine mittlere Katastrophe:

    void set_first(char*first) 
    { 
      cout<<"\nVorname eingeben" ;
      cin>>vorname;
      laenge1=strlen(vorname); 
      for(int i=0;i<laenge1;i++) 
        cout<<" "<<vorname[i];              //bis hierhin womöglich noch braucbar
      *ptrvorname=vorname[i];               //schreibt den Null-Terminator von Vorname irgendwohin (ptrvorname ist nicht initialisiert)
      ptrvorname=new char[strlen(first)+1]; //legt ein neues Array an (kein delete > mögliches Speicherleck
      strcpy(vorname,first);                //füllt das Array mit Daten (woher kommen die?)
    }
    

    Und du solltest dich einigen, ob die Methoden den Namen selber einlesen oder als Parameter übernehmen - beides kombiniert macht idR wenig Sinn.


Anmelden zum Antworten