003
13.06.2003, 12:51 Uhr
virtual
Sexiest Bit alive (Operator)
|
Prinzipiell kann man das auch alles mit vorgefertigten Routinen machen, die C mitbringt: Folgender - ungetesteter - Code benutzt strchr zum suchen nach dem Semikolon und kopiert dann die Teile links und rechts davon in eigene Puffer.
C++: |
#include <stdio.h>
int main() { char test_daten[256] = "Ich bin Eine ID;Ich bin ein Datum"; char id[256]; char datum[256]; char* p; /* Vorinitialisieren, nur bei id erfoderlich */ strcpy(id, "");
/* Suche das Semikolon */ p = strchr(test_daten, ';'); if (NULL == p) { printf("Oje, kein Semikolon da!\n"); return 1; }
/* Fülle die Felder mit den Werten */ strncat(id, test_daten, p-test_daten); strcpy(datum, p+1);
/* Gebe die Daten aus */ printf("Die ID ist: %s\n", id); printf("Das Datum ist: %s\n", datum); printf("Die Originaldaten waren: %s\n", test_daten); }
|
Schmerzfreier geht es mit der Routine strtok, wobei diese routine dann allerdings die Ausgangsdaten verändert (würde an die Stelle des Semikolons ein 0-Byte schreiben). Da ich mir aber nicht sicher war, was Du genau brauchst, habe ich strchar verwendet; obiger Code läßt die Ausgangsdaten unverändert. -- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21) |