Anonymní profil Ondra – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Ondra – Programujte.comAnonymní profil Ondra – Programujte.com

 

Příspěvky odeslané z IP adresy 37.188.225.–

Ondra
C / C++ › Rozdělení pole podle znaku
24. 11. 2012   #167465

#21 Hanule
Ty někde vidíš že bych použil funkci strtok() ? csvstrtok(), která je tam použita, je její náhrada, je tam její kompletní definice.

O.

Ondra
C / C++ › Rozdělení pole podle znaku
23. 11. 2012   #167456

Ahoj, co takhle ?

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

char vals[250][250];

char test[] = "1234;ab;5678;hovno;prdel;kameni";

char * csvstrtok(char *line, char sep)
{
  static char *current;
  char *start;
  int quoted = 0;

  if (line != NULL)
  {
    current = line;
  }

  start = current;

  if (*current == '\0') return NULL;

  while (*current != '\0' && ((*current != sep) || quoted))
  {
    if (*current == '"')
    {
      quoted = !quoted;
    }
    current++;
  }

  if (*current == sep)
  {
    *current = '\0';
    current ++;
  }

  return (start);
}

int main(int argc, char *argv)
{

  char *s;
  int i;

  int cnt = 0;

  s = csvstrtok(test, ';');
  while (s)
  {
    strcpy(vals[cnt++], s);
    s = csvstrtok(NULL, ';');
  }

  for (i=0; i<cnt; i++)
    printf("%d=%s\n", i, vals[i]);

  system("pause");

  return 0;

}

Ondra

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý