C++ -> Anführungszeichen innerhalb von Strings

Problem

Sie wollen einen String verarbeiten in dem Anführungszeichen vorkommen.

Die in dem String vorkommenden Anführungszeichen unterbrechen den String und es wird eine Fehlermeldung

ausgegeben da der Compiler meint, das hinter dem zweiten Anführungszeichen nur Müll steht, den er nicht versteht.

Beispiel:

text="<text:p text:style-name="P1">$var1</text:p>"

Der Compiler bricht die Stringverarbeitung mitten drin ab, da er meint, das nach dem zweiten Anführungszeichen

schluß ist.

text="<text:p text:style-name="P1">$var1</text:p>"

Die Fehlermeldung lautet in etwa so (Je nach Compiler)

error: expected ‘;’ before ‘P1’
Build failed: 1 error(s), 0 warning(s) (0 minute(s), 1 second(s))

Lösung

Sie müssen die Anführungszeichen "Escapen" das heißt vor den zum Text gehörenden Anführungszeichen müssen Sie

ein \ Zeichen setzen.

Also so:

text="<text:p text:style-name=\"P1\">$var1</text:p>"

Beispiel (Ausschnitt)

........
file.Open(SlaveFileName,wxFile::read_write);
FileContent="<text:p text:style-name=\"P2\">$var1</text:p>";
FileContent.Replace("<text:p text:style-name=\"P2\">$var1</text:p>","<text:p text:style-name=\"P2\">ZZZZZZZZZ</text:p>");
file.Write(FileContent);
file.Close();
........