CString



  • Hi... ich hab mal eine vielleicht etwas dumme Frage :)... aber naja...

    Wie konkateniere ich zwei CStrings? Geht das nur mit Append?

    CString sReturn = pElement->Value();
      sReturn.Append("_");
      sReturn.Appen(pElement->Attribute("id"));
    

    Das ist so umständlich gibt es nichts der Art

    CString sReturn = pElement->Value() + "_" + pElement->Attribute("id");
    

    Danke für Antworten 😃



  • Klar geht das mit +. 🙂
    Bekommst du eine Meldung? Welche?
    Was gibt dir pElement->Attribute("id") zurück?



  • Die Variante mit dem + funktioniert nur, wenn mindestens ein CString in jedem (Teil)Ausdruck beteiligt ist. Wenn du versuchst, zwei char* auf diese Weise zu verknüpfen, bekommst du einen Fehler, weil Zeiger-Addition nicht erlaubt ist.



  • pElement->Attribute("id") gibt einen const char* zurück...

    Der Fehler ist:
    error C2110: '+': Zwei Zeiger können nicht addiert werden

    Grüße



  • CStoll schrieb:

    Die Variante mit dem + funktioniert nur, wenn mindestens ein CString in jedem (Teil)Ausdruck beteiligt ist. Wenn du versuchst, zwei char* auf diese Weise zu verknüpfen, bekommst du einen Fehler, weil Zeiger-Addition nicht erlaubt ist.

    Ahh danke 🙂



  • Fazit:

    CString sReturn(pElement->Value());
    sReturn += "_";
    sReturn += pElement->Attribute("id");
    

  • Mod

    Dann geht auch:

    CString sReturn = CString(pElement->Value()) + "_" + pElement->Attribute("id");
    

    Nur CSTring kent +, für char* geht das eben nicht!


Log in to reply