Funktionsparameter

carlos1976

Grünschnabel
Hallo zusammen!

Ich stecke noch in den C++Kinderschuhen und hab Probleme das untenstehende Programm fertig zu bekommen.

Die Ausgabe am Bildschirm soll wie folgt aussehen:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 transitional//EN"
"http://www.w3.org/TR/html4/transitional.dtd">
<html><head><titel>Titel</titel></head><body></body></html>


Wie bekomme ich die letzten zwei Zeilen hin? Thx für Eure Hilfe!

Code:
#include <iostream>
#include <string>

using namespace std;

string printDocType()
{
	string result;
	result = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 transitional//EN\"\n" ;

	return result;
}

string printTag(string tag_name, string content)
{
	string result;

	// Hier fehlt etwas...

	return result;
}

/** Dies ist der Einstiegspunkt des Programms. Hier soll nichts verändert werden! */
int main(int argc, char* argv[])
{	
	cout << printDocType();
	cout << printTag("html", 
	                 printTag("head", 
	                          printTag("title", "Titel"))+
	                 printTag("body", "")) << "\n";
	return 0;
}
 
Es gibt "stringstreams", die funktionieren so ähnlich wie "cout" und "cin":
C++:
#include <sstream>
// ...
std::stringstream ss;

ss << "<" << tag_name << ">" << content << "</" << tag_name << ">";

return ss.str();
 
Beziehst du dich jetzt auf engelmarkus' Antwort?

Folgendes funktioniert:
C++:
string printTag(string tag_name, string content)
{
    string result;

    result = "<"+tag_name+">"+content+"</"+tag_name+">";

    return result;
}

Ist jetzt nicht deine Frage, aber mir ist auch aufgefallen, dass dein Doctype unvollständig ist, so ist es richtig:
C++:
string printDocType()
{
    string result;
    result = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"\n\"http://www.w3.org/TR/html4/loose.dtd\">" ;

    return result;
}
 
Zuletzt bearbeitet:
Genau die zweite Lösung war meine Frage, wusste nicht, dass ich das einfach noch da hinter schreiben kann.
Danke!
 
Zurück