Als «string-literals» getaggte Fragen

String-Literale betreffen die syntaktische Darstellung von Literal-Konstanten-Strings in C und C ++.


10
Mehrzeiliges C ++ - Zeichenfolgenliteral
Gibt es eine Möglichkeit, mehrzeilige, konstante Klartextliterale in C ++ à la Perl zu verwenden? Vielleicht ein Parsing-Trick mit #includeeiner Datei? Ich kann mir keinen vorstellen, aber Junge, das wäre schön. Ich weiß, dass es in C ++ 0x sein wird.



8
String-Literale: Wohin gehen sie?
Ich interessiere mich dafür, wo String-Literale zugewiesen / gespeichert werden. Ich habe hier eine faszinierende Antwort gefunden : Das Definieren einer Zeichenfolge inline bettet die Daten tatsächlich in das Programm selbst ein und kann nicht geändert werden (einige Compiler erlauben dies durch einen intelligenten Trick, stören Sie sich nicht). Aber …

5
Windows-Pfad in Python
Wie lässt sich beispielsweise ein Windows-Verzeichnis am besten darstellen "C:\meshes\as"? Ich habe versucht, ein Skript zu ändern, aber es funktioniert nie, weil ich das Verzeichnis nicht richtig zu finden scheine, nehme ich an, weil es '\'als Escape-Charakter fungiert.

6
Berechnen der Länge eines C-Strings zur Kompilierungszeit. Ist das wirklich ein constexpr?
Ich versuche, die Länge eines String-Literals zur Kompilierungszeit zu berechnen. Dazu verwende ich folgenden Code: #include <cstdio> int constexpr length(const char* str) { return *str ? 1 + length(str + 1) : 0; } int main() { printf("%d %d", length("abcd"), length("abcdefgh")); } Alles funktioniert wie erwartet, das Programm druckt 4 …


4
Wie verwende ich das Makro-Argument als String-Literal?
Ich versuche herauszufinden, wie man ein Makro schreibt, das sowohl eine Zeichenfolgenliteraldarstellung eines Variablennamens als auch die Variable selbst an eine Funktion übergibt. Zum Beispiel die folgende Funktion gegeben. void do_something(string name, int val) { cout << name << ": " << val << endl; } Ich möchte ein Makro …

9
"Lebenszeit" eines String-Literals in C.
Wäre der von der folgenden Funktion zurückgegebene Zeiger nicht unzugänglich? char *foo(int rc) { switch (rc) { case 1: return("one"); case 2: return("two"); default: return("whatever"); } } Die Lebensdauer einer lokalen Variablen in C / C ++ liegt also praktisch nur innerhalb der Funktion, oder? Was bedeutet, dass char* foo(int)der …


2
Was ist der Grund für die Klammer in C ++ 11s rohen String-Literalen R „(…)“?
In C ++ 11 wurde eine sehr praktische Funktion eingeführt, die als Raw-String-Literale bezeichnet wird. Hierbei handelt es sich um Strings ohne Escape-Zeichen. Und anstatt dies zu schreiben: regex mask("\\t[0-9]+\\.[0-9]+\\t\\\\SUB"); Sie können dies einfach schreiben: regex mask(R"(\t[0-9]+\.[0-9]+\t\\SUB)"); Ziemlich lesbarer. Beachten Sie jedoch zusätzliche Klammern um die Zeichenfolge, die platziert werden …



Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.