C++ & cout & Slash & url



  • Wie kann man in C++ urls, die ja viele Slash enthalten, welcher in C++ als Operator verwendet wird, elegant als String abbilden?

    Muss ich da wirklich bei jedem Slash einen weiteren Slash anfügen, um C++ zu sagen, daß er das als Slash und nicht als Operator betrachten soll oder geht das, die Umwandlung einer URL in einen String auch irgendwie einfacher?

    #include <iostream>
    
    using namespace std;
    
    void main(){
      String geheim = "Die geheime URL lautet ";
      String url="http://www.youtube.com/watch?v=eDd03MKns9w";
      cout << geheim << url << endl;
    }
    


  • Es geht genau so, wie Dein Beispiel zeigt.


  • Mod

    Du denkst vermutlich an den Backslash '\', eines der wenigen Zeichen, die selbst innerhalb eines Stringliterals eine Sonderbedeutung haben.



  • Nur der Backward-Slash leitet in Stringliteralen eine Escape-Sequenz ein. Und da AFAIK sowieso überall auch ein Forward-Slash akzeptiert wird, sehe ich kein Problem.



  • In URLs werden nicht "auch Forward Slashes akzeptiert", da sind _nur_ Forward Slashes zulässig. Backslashes müsstest du enkodieren. (%5C IIRC.)



  • SlashZwo schrieb:

    #include <iostream>
    
    using namespace std;
    
    void main(){
      String geheim = "Die geheime URL lautet ";
      String url="http://www.youtube.com/watch?v=eDd03MKns9w";
      cout << geheim << url << endl;
    }
    

    Was ist daran jetzt geheim?



  • Ach, bevor ich es vergesse: Das ist kein gültiges ISO-C++ ( ::main() muss int als Rückgabewert haben, und die Klasse String wird nicht durch <iostream> bereitgestellt (nicht, dass die Standardbibliothek sie überhaupt bereitstellen würde)).


Anmelden zum Antworten