Archiv verlassen und diese Seite im Standarddesign anzeigen : Zeichen Ketten Verbinden C++
undefined
06-04-2004, 16:07
Mit welchen Befehl kann ich den mit argv[] übergebene Zeichenketten mit einander verbinden und in einen string wandeln?
3 parameter vom type char je maximale Zeichenlänge 25. Ich habe im moment keinen Plan womit ich das machen kann. Habe bisher append entdeckt jedoch ist Manual mehr als dürftig.
Danke
std::string parameter = "";
for (int i=0; i<argc; i++)
parameter += argv[i];
Der String parameter enthält dann deine kompletten Parameter inkl. Name der Binary am Anfang.
parameter enthält dann allerdings keine Leerzeichen so wie deine Commandline aussieht.
Die kannst du ja aber in der for Schleife auch noch an den String anhängen.
MfG deki
undefined
08-04-2004, 10:56
Erst mal Danke für deine Hilfe ;) Ich habe nur mal wieder zu voreilg gepostet weil sich später herausgestellt hat das ich den string zur weiteren verabeitung nicht verwenden kann. Daher habe ich jetzt mit strcpy und strcat das ganze zusammen gefügt damit ich weiterhin ein char habe.
Ich habe aber noch eine Zweite Frage, im moment nehme ich in meinem Program comando zeile entgegen die ich mit "system" an eine Binray sende. Nur gibt mir System einen Integeren Wert zurück so das ich im Moment die Rükgabe in eine Log schreibe.
strcpy(param, argv[1]);
strcat(param, " ");
strcat(param, argv[2]);
strcat(param, " ");
strcat(param, argv[3]);
strcat(param, " > ");
strcat(param, "tmp.log");
Damit ich die Nachricht verarbeiten kann. Meine frage ist hierbei, mit welcher Funktion oder Klasse kann ich unter Linux Direkt lesen. Weil mir das anlegen und Löschen von tempfiles doch etwa umständlich erscheint.
anda_skoa
08-04-2004, 16:57
Original geschrieben von undefined
Erst mal Danke für deine Hilfe ;) Ich habe nur mal wieder zu voreilg gepostet weil sich später herausgestellt hat das ich den string zur weiteren verabeitung nicht verwenden kann.
Aus welchem Grund genau?
Multithreading? Performance Problem in einer hochzeitkritischen Anwendung?
Damit ich die Nachricht verarbeiten kann. Meine frage ist hierbei, mit welcher Funktion oder Klasse kann ich unter Linux Direkt lesen. Weil mir das anlegen und Löschen von tempfiles doch etwa umständlich erscheint.
popen, unter Qt QProcess
Ciao,
_
Original geschrieben von undefined
Erst mal Danke für deine Hilfe ;) Ich habe nur mal wieder zu voreilg gepostet weil sich später herausgestellt hat das ich den string zur weiteren verabeitung nicht verwenden kann.
Wenn du einen std::string hast aber char * benötigst, kannst du das machen:
std::string str;
const char * cstr = NULL;
// sachen auf str anwenden...
cstr = str.c_str();
Wobei zu beachten ist, dass man mit der Methode c_str() einen const char* bekommt, der somit nicht editiert werden kann.
Um ein char* zu bekommen muss man das Kopieren: strdup()
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.