29. august 2007 - 21:21
Der er
8 kommentarer og 1 løsning
Split streng ved tag start/slut
Hej C eksperter, Hvordan kan jeg i C splitte en streng ved en streng? Jeg har fundet utallige løsninger med seperation ved en enkelt char, men ikke ved en hel streng. Lad os antage jeg har følgende; <ahv>Hej</ahv> <ahv>med</ahv> <exp>ost</exp> <ahv>dig</ahv> Hvordan får jeg da indholdet af ahv-tags'ne ud i et array således at jeg har et array der indeholder; mitArray[0] = 'Hej' mitArray[1] = 'med' mitArray[2] = 'dig' På forhånd tak for hjælpen.
Annonceindlæg fra Partnertekst
29. august 2007 - 21:28
#1
Det maa da stort set vaere samme metode. Du soeger efter en enkelt char med strchr og du soeger efter en streng med strstr.
29. august 2007 - 21:35
#2
Eksempel: #include <stdio.h> #include <string.h> void find(char *s, char *start, char *end) { char *p,*p2,tmp[100]; p = s; while((p = strstr(p, start)) != NULL) { p2 = strstr(p, end); strncpy(tmp, p + strlen(start), p2 - p - strlen(start)); tmp[p2 - p - strlen(start)] = '\0'; printf("%s\n", tmp); p = p2; } } int main() { char *s = "<ahv>Hej</ahv><ahv>med</ahv><exp>ost</exp><ahv>dig</ahv>"; find(s, "<ahv>", "</ahv>"); return 0; }
29. august 2007 - 21:37
#3
Hej Arne, Kan jeg lokke et brugbart eksempel ud ad dig? Jeg er stødt ind i eksempler med strtok. Tak.
29. august 2007 - 21:40
#4
Hvis du rent faktisk har et rigtigt XML dokument, saa er der XML parsere til C. Og de er nok mere sikre end de notorisk drillesyge str funktioner.
29. august 2007 - 21:46
#5
Hej arne, Det er netop til et XML dokument jeg skal benytte det. Er det noget som du kan give et hurtigt eksempel på eller skal jeg prøve at google det lidt?
29. august 2007 - 21:46
#6
Eksemplet er ovenfor. Jeg tvivler paa at strtok er et godt valg til din problem stilling.
29. august 2007 - 21:48
#7
Jeg kan maaske godt proeve at lave et simpelt eksempel med LIBXML2 eller EXPAT (de 2 mest bruge XML parsere til ren C). Men det bliver foerst senere idag/imorgen/fredag.
29. august 2007 - 21:49
#8
Jeg prøver at søge lidt og se hvad jeg finder, ellers vender jeg tilbage her. Du skal i hvert fald have tak for de gode hints indtil nu. Smid et svar.
29. august 2007 - 22:16
#9
svar
Kurser inden for grundlæggende programmering