Mehrere cstrings in Parameterliste anhängen
-
Hallo,
ist es möglich, zwei oder mehrere cstrings bei der Parameterübergabe einer Funktion zu addieren? Z.B. so etwas:
void fct(char *c);
fct("Hallo\n" + "neue Zeile");
Da es beides Konstanten sind, sollte der Compiler doch das zu einer umwandeln können. Sinnvoll ist das fuer mich, um relativ lange cstrings übersichtlicher übergeben zu können.
Bei obigen Beispiel erhalte ich immer die Fehlermeldung
error: invalid operands of types `const char[7]' and `const char[11]' to binary `operator+Danke und Gruß
Oliver
-
oliver67 schrieb:
Da es beides Konstanten sind, sollte der Compiler doch das zu einer umwandeln können.
Kann er auch, wenn du das + weglässt.
-
MFK schrieb:
oliver67 schrieb:
Da es beides Konstanten sind, sollte der Compiler doch das zu einer umwandeln können.
Kann er auch, wenn du das + weglässt.
Hallo MFK,
ja, danke, klappt!
Gruß
Oliver
-
Ich möchte anmerken, dass man strings nicht addieren kann. Wie ist z.b. "hallo" + "welt" definiert??? Man kann string aneinanderhängen aber nicht addieren.
Außerdem funktioniert "hallo " "Welt" zu "hallo Welt" nur mit string Literalen, weil der Compiler zur Compilezeit dies auflösen kann. Wären das 2 Variablen....
char hallo[] = "Hallo "; char welt[] = "Welt"; printf("%s", hallo welt);
geht schief. Man sollte also lieber man: strcat(3) benutzen.
-
Ja, mich hatte das amer nur im Zusammenhang mit Konstanten interessiert. Einzig, um deren Übergabe etwas übersichtlicher zu gestalten.
Gruß
Oliversupertux schrieb:
Ich möchte anmerken, dass man strings nicht addieren kann. Wie ist z.b. "hallo" + "welt" definiert??? Man kann string aneinanderhängen aber nicht addieren.
Außerdem funktioniert "hallo " "Welt" zu "hallo Welt" nur mit string Literalen, weil der Compiler zur Compilezeit dies auflösen kann. Wären das 2 Variablen....
char hallo[] = "Hallo "; char welt[] = "Welt"; printf("%s", hallo welt);
geht schief. Man sollte also lieber man: strcat(3) benutzen.