Char Problem
-
HI!
Ich hab mal ne frage mit char*
Folgender Code erzeugt diesen Fehler:main.cpp:22: invalid operands of types `char *' and `char *' to binary
`operator+'int main(int argc, char *argv[]) { char * command; command = argv[1] + argv[2]; return EXIT_SUCCESS; }
Jetzt versteh ich nicht warum...
Ich will doch nur die beiden vars zu einer Zeichenkette zusammenfügen...
Warum klappt das nicht?
Danke für eure Replies
-
DaFrey schrieb:
HI!
Ich hab mal ne frage mit char*
Folgender Code erzeugt diesen Fehler:main.cpp:22: invalid operands of types `char *' and `char *' to binary
`operator+'int main(int argc, char *argv[]) { char * command; command = argv[1] + argv[2]; return EXIT_SUCCESS; }
Jetzt versteh ich nicht warum...
Ich will doch nur die beiden vars zu einer Zeichenkette zusammenfügen...
Warum klappt das nicht?
Danke für eure Replies
weil es zeichenketten sind, und nicht einzelen zeichen. du musst
strcpy(arrayA, arrayC + arrayB)
benutzen. der +-operator funktioniert glaube ich nur mit der string klasse(stl).
mfg
-
HI!
Dann müsste es doch eigentlich so stimmen:
int main(int argc, char *argv[]) { char * command; strcpy(command, argv[1] + argv[2]); return EXIT_SUCCESS; }
Das funtz aber auch nicht....
Muss ich noch extra header einbinden?
-
Was du machst ist, dass du 2 char-Pointer miteinander addierst.
Versuch folgendes:
sprintf("%s%s", argv[1], argv[2]);
-
HI!
So hats auch nicht geklappt habs jetzt aber hinbekommen.
Mit StrCat() damit funtzt.
Aber trotzdem danke gell
-
Entschuldige, ich hab vergessen, dass die Funktion auch einen Buffer benötigt.
char buffer[200]; sprintf(buffer, "%s%s", argv[1], argv[2]);
-
HI!
Jetzt hab ich deinen Code mal versucht
char command[500]; sprintf(command, "%s%s", argv[1], argv[2]); cout << command;
Aber wenn ich dass Kompilieren will haut mein Compiler (gmake in KDevelop 2.1)
Folgende Fehlermeldung raus:
main.cpp: In function `int main (int, char **)': main.cpp:69: universal-character-name `\u00a0' not valid in identifier main.cpp:69: universal-character-name `\u00a0' not valid in identifier main.cpp:69: sorry, not implemented: universal characters in identifiers main.cpp:69: `_argv' undeclared (first use this function) main.cpp:69: (Each undeclared identifier is reported only once for each function it appears in.)
-
Ich hab keinen Schimmer was der Compiler mit "universal-character-name `\u00a0' not valid in identifier" meint. Zeile 69, welche der drei Zeilen ist das aus dem Code den du angegeben hast?
-
Es ist der sprintf ausdruck (die zeile 69)
Leider funtz das mit StrCat() auch nicht weil der irgendwie kein normalen Char-Pointer und ein Char-Point-Array zusammensetzten kann.
Bitte bitte helft mir es ist verdammt wichtig
Aber, Azis der ausdruck den ich als letztes beschrieb ist doch so richtig oder?
-
Ich habs jetzt ausprobiert und es funktioniert...
Heißt die Variable ganz sicher "argv" und nicht vielleicht "_argv" ?
Ansonsten kann ich dir nicht viel helfen weil du einen Compiler hast, den ich nicht verwende...
-
HI!
Also eigetnlich heisst sie argv so wie ichs sagte.
das sind halt die Paramenter die an die App. übergeben werden.Anzahl "int argc" und inhalt "char * argv[int param_index]"
Und wenn man z.b. cout << argv[1]; aufruft und die App so gestartet hat:./meineapp Hallo
Wird Hallo ausgegeben, also müsste es schon stimmen
-
Hast du <stdio.h> included?
-
#include <string> using namespace std; int main(int argc, char* argv[]) { string a = argv[0], b = argv[1]; string c = a + b; }
Oder bist du wirklich sicher, dass du char* verwenden willst/musst?