Avatar billede krismort Nybegynder
01. december 2001 - 13:12 Der er 2 kommentarer og
1 løsning

Split af string?

Hej
Er der en der kan hjælpe mig med et problem ?
Jeg har en tekststreng \"INDHOLD*1*53*5\" hvordan splitter jeg denne string op de steder hvor \"*\" optræder og hvordan lægger jeg disse ud i arrays fx split[0] (= \"INDHOLD\")
split[1] (= \"1\")
split[2] (= \"53\")
split[3] (= \"5\")

Kristian
Avatar billede alvion Nybegynder
01. december 2001 - 13:35 #1
Du bruger funktionen strtok()

Jeg kan ikke lige huske syntaksen, men hvis du slår den op i din hjælpefil, så er der sikkert et eksempel
Avatar billede Techwork Praktikant
01. december 2001 - 13:44 #2
Her er et lille eksempel som du kan bygge videre på:

#include <conio.h>
#include <string.h>
#include <stdio.h>

int main(void)
{
  clrscr();
  char input[16] = \"abc*d\";
  char *p;

  /* strtok places a NULL terminator
  in front of the token, if found */
  p = strtok(input, \"*\");
  if (p)  printf(\"%s\", p);

  /* A second call to strtok using a NULL
  as the first parameter returns a pointer
  to the character following the token  */
  p = strtok(NULL, \"*\");
  if (p)  printf(\"%s\", p);
  return 0;
}
Avatar billede ttn.bonk Nybegynder
02. december 2001 - 00:01 #3
Hvis du har et fast antal, som der skal splittes ud i, kan
du nemt bruge sscanf:

int n = sscanf(\"INDHOLD*1*53*5\",
              \"[^*]*[^*]*[^*]*[^*]\",
              split[0],
              split[1],
              split[2],
              split[3]);
if (n==4)
{
  // Huraa!!, fandt de 4 elementer
}

Har du et ukendt antal elementer,
skal der bruges en løkke og f.eks. strok().
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester