Xile
Lieutenant
- Registriert
- Jan. 2007
- Beiträge
- 557
Hallo zusammen,
ich hab da ein kleines Problem:
Ich habe Datensätze der Form 11;22;33;44;55 die ich nach dem Trennzeichen ; in Einzelstrings zerlegen will, also:
String1 = 11
String2 = 22
String3 = 33
String4 = 44
String5 = 55
An sich nicht schwer, jedoch kann es vorkommen das ein Bereich des Datensatzen NULL (oder leerer String) ist, d.h. der Eingangsdatensatz könnte auch folgendermaßen aussehen:
11;22;;44;55
das Ganze sollte dann so zerlegt werden:
String1 = 11
String2 = 22
String3 = (leerer String)
String4 = 44
String5 = 55
Ich habe das Ganze nun schon mit dem StringTokenizer und sscanf versucht, leider ohne Erfolg. Der StringTokenizer behandelt zwei oder mehr aufeinanderfolgende Trennzeichen als ein Trennzeichen, somit gehen mit Datenbereiche verloren und mit sscanf klappt es auch nicht... wenn man folgendermaßen Zerlegen will:
Hat jemand eine Idee wie man den String zerlegen kann, sodass auch leere Datenfelder (zwei aufeinanderfolgende Semikolons) erhalten beliben. Maximale Länge der einzelenen Datenfelder ist fix und bekannt!
Danke im Voraus!
ich hab da ein kleines Problem:
Ich habe Datensätze der Form 11;22;33;44;55 die ich nach dem Trennzeichen ; in Einzelstrings zerlegen will, also:
String1 = 11
String2 = 22
String3 = 33
String4 = 44
String5 = 55
An sich nicht schwer, jedoch kann es vorkommen das ein Bereich des Datensatzen NULL (oder leerer String) ist, d.h. der Eingangsdatensatz könnte auch folgendermaßen aussehen:
11;22;;44;55
das Ganze sollte dann so zerlegt werden:
String1 = 11
String2 = 22
String3 = (leerer String)
String4 = 44
String5 = 55
Ich habe das Ganze nun schon mit dem StringTokenizer und sscanf versucht, leider ohne Erfolg. Der StringTokenizer behandelt zwei oder mehr aufeinanderfolgende Trennzeichen als ein Trennzeichen, somit gehen mit Datenbereiche verloren und mit sscanf klappt es auch nicht... wenn man folgendermaßen Zerlegen will:
Code:
char *dataset = "11;22;;44;55";
int result;
char i[10], j[10], k[10], l[10], m[10];
int main()
{
result = sscanf(dataset, "%[^';'];%[^';'];%[^';'];%[^';'];%[^';']",i,j,k,l,m);
}
Hat jemand eine Idee wie man den String zerlegen kann, sodass auch leere Datenfelder (zwei aufeinanderfolgende Semikolons) erhalten beliben. Maximale Länge der einzelenen Datenfelder ist fix und bekannt!
Danke im Voraus!