1. #1
    Avatar von Minecraft
    Registriert seit
    25.11.2011
    Beiträge
    275
    Thanked 50 Times in 34 Posts
    Blog Entries
    13

    Standard [C++] Strings verbinden?

    Hi!
    Ich möchte mehrere Strings in C++ miteinander verbinden also so:

    Code:
    string text = "Du bist auf dem " + Platz + " Platz";
    Platz ist eine Integer Variable.
    Wenn ich zb folgendes mache geht es:

    Code:
    cout << "Du bist auf dem " << Platz << " Platz";
    Ich brauch das aber in einem String weil ich den Text als Parameter einer Funktion geben will. Im String geht das verbinden nicht egal ob mit + oder << bei + kommt immer ein Fehler "unzulässige Zeigeraddition"

  2. #2

    Registriert seit
    06.11.2011
    Beiträge
    418
    Thanked 686 Times in 246 Posts

    Standard AW: [C++] Strings verbinden?


  3. #3
    Avatar von Minecraft
    Registriert seit
    25.11.2011
    Beiträge
    275
    Thanked 50 Times in 34 Posts
    Blog Entries
    13

    Standard AW: [C++] Strings verbinden?

    Das habe ich auch schon gefunden.
    strcpy funktioniert, aber ich habe in dem Programm noch andere Strings wo ich Texte generiere in denen 3,4 Variablen drin vorkommen. Da ist es aufwändig und unübersichtlich immer mit strcpy zu kopieren.
    Kann ich die nicht irgendwie mit + verbinden? Oder gibts eine Möglichkeit die wie bei printf mit %s zu formatieren und so aneinanderzuhängen?

  4. #4
    Avatar von Ta1lor
    Registriert seit
    15.11.2011
    Beiträge
    767
    Thanked 832 Times in 435 Posts

    Standard AW: [C++] Strings verbinden?

    Nein so funktioniert das nun mal, um zwei Zeichenketten zu verbinden muss ein Buffer erstellt werden, der Mindestens so groß ist wie die beiden oder mehreren Strings zusammen, in diesen werden dann die Bytes kopiert.
    Was du noch nutzen könnte wäre sprintf - C++ Reference

  5. #5
    Avatar von Minecraft
    Registriert seit
    25.11.2011
    Beiträge
    275
    Thanked 50 Times in 34 Posts
    Blog Entries
    13

    Standard AW: [C++] Strings verbinden?

    Naja aber mit cout und printf geht es auch. Das die intern irgendwie was buffern ist klar. Ein string funktioniert intern auch mit char arrays.
    Aber es kann doch nicht sein dass man normale Strings in C++ nicht wie in C# oder Java einfach zusammenführen kann?
    Ich will ja nicht anfangen und mir eine Funktion schreiben die mit char arrays selbst was zusammenbastelt, der ich als Parameter die Variablen übergebe und mir dann einen string bzw char array zurück liefert oô

  6. #6
    Avatar von Ta1lor
    Registriert seit
    15.11.2011
    Beiträge
    767
    Thanked 832 Times in 435 Posts

    Standard AW: [C++] Strings verbinden?

    Zitat Zitat von Sidoh Beitrag anzeigen
    Naja aber mit cout und printf geht es auch. Das die intern irgendwie was buffern ist klar. Ein string funktioniert intern auch mit char arrays.
    Aber es kann doch nicht sein dass man normale Strings in C++ nicht wie in C# oder Java einfach zusammenführen kann?
    Ich will ja nicht anfangen und mir eine Funktion schreiben die mit char arrays selbst was zusammenbastelt, der ich als Parameter die Variablen übergebe und mir dann einen string bzw char array zurück liefert oô
    Vielleicht kaufst du dir noch mal ein buch überlegst dir was der unterschied zwischen C++ und Java oder .Net sind.
    cout und printf schreiben etwas in die Konsole, da kannst du einfach nach einander Zeichen rein schieben wie du willst.

    Also lern die Sprache lieber anstatt einfach nur zu versuchen irgendwie etwas zusammen zu kopieren.
    Hättest du dir mindestens ein Buch/Tutorial durchgelesen dann wüsstest du was Pointer/Zeiger sind und wüsstest wie das ganze Funktioniert.

  7. #7

    Registriert seit
    19.11.2011
    Beiträge
    496
    Thanked 412 Times in 268 Posts

    Standard AW: [C++] Strings verbinden?

    Ich mach das immer mit stringstreams.
    Code:
    #include <iostream>
    #include <string>
    #include <sstream>
    
    using namespace std;
    
    int main(int argc, char **argv) {
        ostringstream strstream;
        int platz = 3;
        strstream << "Du bist auf dem " << platz << " Platz";
        cout << strstream.str() << endl;
        return 0;
    }

  8. The Following User Says Thank You to Mr. White For This Useful Post:

    Minecraft (27.04.2012)

Ähnliche Themen

  1. Strings alphabetisch ordnen
    Von Saad im Forum Java
    Antworten: 8
    Letzter Beitrag: 12.11.2012, 13:45
  2. [MySQL] Variablen in Strings
    Von Minecraft im Forum Webentwicklung
    Antworten: 3
    Letzter Beitrag: 24.04.2012, 21:46
  3. Anfänger 2 Strings mit einander verrechnen
    Von DeKaDeNz im Forum Aufgaben
    Antworten: 1
    Letzter Beitrag: 02.02.2012, 18:55
  4. [Problem] W-LAN verbinden
    Von Prince im Forum Windows
    Antworten: 6
    Letzter Beitrag: 16.01.2012, 20:00
  5. Domain und VPS verbinden?
    Von IceNet im Forum Server-Administration
    Antworten: 2
    Letzter Beitrag: 12.12.2011, 14:13
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.