PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [c] eine art explode für C?



quinte17
09-09-2004, 15:20
huhu ;)
ich bekomme einen string per argument übergeben:
test.exe \\server\ordner

nun brauch ich den server und den ordner einzeln in einer variablen, es wird nicht vorkommen, dass es noch tiefer in die ordnerstruktur geht...

hab schon gesucht, bin aber irgendwie zu dumm was passendes zu finden..

greetz!

Boron
09-09-2004, 16:08
Deine main-Funktion sieht jairgendwie so aus:
int main( int argc, char* argv[]) {
....
}argv ist ein Array von Strings.
In argv[0] steht "/pfad/zu/test.exe"
In argv[1] steht das erste Argument; bei dir dann "\\server\ordner"

Du kannst dann mit normalen Stringoperationen argv[1] zerpflücken wie du willst.

quinte17
09-09-2004, 16:17
und genau so eine stringfunction würd ich gerne wissen ;)
weil ich im moment keine zeit und lust hab da selber eine function zu schreiben die byte für byte durchkaut

greetz

Boron
09-09-2004, 16:27
Da ja nur du weißt, was genau du willst, kann es eine solche Funktion gar nicht geben.

Es gibt zwar Funktionen, welche die Behandlung von mehreren Argumenten ermöglichen (wenn du also "test.exe \\pfad -d blub -h1" aufrufen würdest), aber einzelne Parameter/Optionen zerpflücken deine Aufgabe.

Wie diese soeben erwähneten Funktionen heißen ist mir leider entfallen :o.

SeeksTheMoon
09-09-2004, 21:30
das geht mit der Standardbibliothek; versuch z.B. mal strtok:

#include <string.h>
char *strtok(char *s, const char *delim);

sucht delim in s und liefert einen Zeiger aufs nächste Element. Mehr dazu steht in der manpage.