char feld[]/ strcpy...Anfängerfrage



  • Hi!

    hab da ein kleines problem ... --
    Der User soll zwei Sätze eingeben und diese sollen dann
    durch die Funktion strcpy zusammengefasst ausgegeben werden. Die zwei Sätze habe ich jeweils in char Wort1[20],Wort2[20] gespeichert. Schließlich möchte ich die zwei Werte die in den beiden Feldern liegen bzw die eingegebenen Wörter, möchte ich noch in dem deklarierten char feld1[60] gespeichert haben.
    Ich habe versucht dies mit strcpy bzw strcat zu lösen doch leider bekomme ich es nicht hin das beide eingegebenen Sätze ins Feld1 kopiert werden -
    -
    Denn bei der Ausgabe erscheint nur der erste eingegebene Satz obwohl ich doch die Werte über Feld1 aufrufe.
    Da gibst bestimmt noch andere Lösungswege .... ich habe das mal auf diese Art und Weise probiert hinzubekommen. Stehe leider, wie man sieht noch ziemlich am Anfang von C++ ...
    Währ nett wenn mir einer das problem mal erklähren könnte woran das liegt und wie man am besten solche Sachen löst. (also welche Funktionen usw ...)

    Hier ma der Code:

    #include <iostream>
    #include <string>
    using namespace std;
    
    int main(){
    
         char feld1[60];
    	 char Wort1[20],Wort2[20];
         char* Satz1 = Wort1;
         char* Satz2 = Wort2;
    
    cout << "\n1.Eingabe:";
    cin  >> Wort1;
    
    cout << "\nIhre 1.Eingabe:";
    cout << Satz1;
    
    cout << "\n";
    
    cout << "\n2.Eingabe:";
    cin  >> Wort2;
    
    cout << "\nIhre 2.Eingabe:";
    cout << Satz2;
    
    strcpy(feld1,Satz1);
    strcat(Satz1,Wort2);
    
    cout << "\nIhre gesamte Eingabe:" << feld1;
    
    return 0;
    
    }
    

    tHX für alle antworten
    ciao



  • #include <iostream>
    #include <string>
    using namespace std;
    
    int main(){
    
         char feld1[60];
         char Wort1[20],Wort2[20];
         char* Satz1 = Wort1;
         char* Satz2 = Wort2;
    
    cout << "\n1.Eingabe:";
    cin  >> Wort1;
    
    cout << "\nIhre 1.Eingabe:";
    cout << Satz1;
    
    cout << "\n";
    
    cout << "\n2.Eingabe:";
    cin  >> Wort2; 
    
    cout << "\nIhre 2.Eingabe:";
    cout << Satz2; 
    
    strcpy(feld1,Satz1);
    strcat(feld1,Satz2);//Hier fügst du den zeiten string an
    
    cout << "\nIhre gesamte Eingabe:" << feld1;
    
    return 0;
    
    }
    

    aber in C++ gibt es dafür die string Klasse.
    Da machst du sowas mit dem + Operator. 😉



  • Sieht dann so aus.

    #include <iostream>
    #include <string>
    using namespace std;
    
    int main()
    {
       string Wort1;
       string Wort2;
       string Satz;
       cout << "\n1.Eingabe:";
       cin  >> Wort1;
       cout << "\nIhre 1.Eingabe:";
       cout << Wort1;
       cout << "\n";
       cout << "\n2.Eingabe:";
       cin  >> Wort2;
       cout << "\nIhre 2.Eingabe:";
       cout << Wort2;
       Satz=Wort1+Wort2;
       cout << "\nIhre gesamte Eingabe:" << Satz << endl;
       return 0;
    }
    


  • Besser \r\n für Windows Komptabilität.



  • Besser \r\n für Unix Komptabilität.

    Dafür gibt's 'n dickes LOL.

    Unixe verwenden nur \n, Windows \r\n und zumindest das das alte Mac OS nur \r.

    Aber das ist nur interessant, wenn du binär in einen Stream schreibst.



  • Hi!

    Vielen Dank !... hab dazugelernt 🙂
    Nur eine Frage habe ich noch: Mir ist aufgefallen das ich das ganze auch so machen kann:

    #include <iostream>
    #include <string>
    using namespace std;
    
    int main(){
    
         char feld1[60];
    	 char Wort1[20],Wort2[20];
         char* Satz1 = Wort1;              // <----  ohne String=...
         char* Satz2 = Wort2;
    
    cout << "\n1.Eingabe:";
    cin  >> Wort1;
    
    cout << "\nIhre 1.Eingabe:";
    cout << Satz1;
    
    cout << "\n";
    
    cout << "\n2.Eingabe:";
    cin  >> Wort2;
    
    cout << "\nIhre 2.Eingabe:";
    cout << Satz2;
    
    strcpy(feld1,Satz1);
    strcat(feld1,Satz2);
    
    cout << "\nIhre gesamte Eingabe:" << feld1;
    
    return 0;
    
    }
    

    geht auch .... ?
    Welches ist besser ... die Wort1 und Wort2 in einen String packen oder
    kann man es auch so wie oben machen?

    THX für alle antworten!
    ciao



  • Hi!

    schade .... kann mir da keiner weiter helfen ? 😞
    bidde bräuchte eine Erklährung hinsichtlich dieses Problems ...

    THX für alle antworten



  • @Helium:
    Ja?
    Bisher ging \n immer anstatt von \r\n



  • Mis2com schrieb:

    Bisher ging \n immer anstatt von \r\n

    Lies den ganzen Post.

    ("Aber das ist nur interessant, wenn du binär in einen Stream schreibst.")


Anmelden zum Antworten