char array statt string!!???



  • Ich muss dieses Programm umschreiben und zwar anstatt string zu verwenden, muss ich es mit char arrays programmieren und ich muss es prodenzual zerlegen (d.h. in einzelne Funktionen unterteilen). Aber ich habe keine Ahnung wie ich das anstellen soll!!! 😕

    #include <string>
    #include <iostream>
    #include <fstream>
    using namespace std;
    
    int main()
    {
        char zeile [180];
        string temp;
        ifstream Ursprung ("Ursprung.txt");
        ofstream Ziel ("Ziel.txt");
    
        cout << "-------------------------------Wortersetzen----------------------------" << endl;
        cout << endl;
        cout << "Hinweis: -Den Text den Sie aendern wollen in die Datei Ursprung.txt kopieren!" << endl;
        cout << "         -Der geaenderte Text wird in die Datei Ziel.txt kopiert." << endl;
        cout << "         -Benutzen Sie keine Umlaute!" << endl;
        cout << endl;
        cout << endl;
    
        string alt, neu;
        cout << "Zu ersetzendes Wort eingeben: " << endl;
        cin >> alt;
        cout << "\nNeues wort eingeben: " <<endl;
        cin >> neu;
        cout << endl;
    
        if (Ursprung);
        {
                while(Ursprung.getline (zeile, 180))
                {
                    temp=temp+zeile + "\n";
                    string::size_type pos = 0;
                    pos = 0;
    
                    while((pos = temp.find(alt)) != string::npos)
                    {
                        temp.replace(pos, alt.length(), neu);
                    }
                }
    
            Ziel << temp << endl;
            Ursprung.close ();
            Ziel.close();
    
        }
    
        system("PAUSE");
        return 0;
    }
    


  • -> So wie bei Zeile erstellst du auch für alt, neu und temp ein char-Array mit der richtigen Länge.

    -> Statt "cin >>" verwendest du wie unten bei Ursprung "cin.getline(...)"

    -> Die Operationen die du derzeit mit +, find, etc. ausführst findest du alle als Funktionen in der Header-Datei <cstring>, ich seh auf den ersten Blick du wirst strcpy(), strcat() und auch strstr() benötigen. Sieh dir zu denen die Doku an.

    Wenn du Probleme bei den einzelnen Aufgaben bekommst, melde dich einfach. Erstmal werde ich dich ins C++-Forum verschieben weil du kein konsolenspezifisches Problem hast.

    MfG SideWinder



  • Dieser Thread wurde von Moderator/in SideWinder aus dem Forum DOS und Win32-Konsole in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • und was soll ich als ersatz für das temp nehmen?
    und wie kann ich die einzelnen schlaufen, ausgaben in eigene Funtionen gliedern?(unterteilung?)



  • TheTrooper schrieb:

    und wie kann ich die einzelnen schlaufen, ausgaben in eigene Funtionen gliedern?(unterteilung?)

    Indem du dir die ersten drei Kapitel eines Tutorials durchliest! Hier gibt's ja genug links dazu.



  • TheTrooper schrieb:

    und was soll ich als ersatz für das temp nehmen?
    und wie kann ich die einzelnen schlaufen, ausgaben in eigene Funtionen gliedern?(unterteilung?)

    temp muss ein char-Array sein, dass so groß wie die gesamte Datei ist. Da das dynamisch ist (je nach Datei unterschiedlich), und erst zur Laufzeit festgestellt werden kann musst du dich mit dynamischer Speicherverwaltung herumschlagen -> siehe beliebiges tutorial (http://tutorial.schornboeck.net ; http://www.volkard.de)

    Alles andere findest du eigentlich auch in diesen Tutorials.

    MfG SideWinder


Anmelden zum Antworten