Portál AbcLinuxu, 12. května 2025 07:12

Dotaz: retezec oddeleny znaky -> pole / Jazyk C

1.12.2006 12:54 NickRabit
retezec oddeleny znaky -> pole / Jazyk C
Přečteno: 613×
Odpovědět | Admin
Dobry den, predem se omlouvam za hloupy dotaz, poslednich 8 let programuji v delphi a ted jsem presel na jayzk C a nemohu za boha prijit na to jak by sel reteze ve formatu neco#neco1#neco2 rozsekat na jednotlive casti a nacpat do dynamickeho pole.

Mel jsem v planu to delat nejak takto: v cyklu prochazet retezec a kdyz narazim na jiny znak nez oddelovat, tak jej pridat do pomocne promenne, kdyz narazim na oddelovac, z pomocne priradit retezec do dalsihoi prvku pole. Ale diky tomu ze se me ceckove ukazatele pletou, tak se me po pol dni badani stale nedari :(

Nasel by se nejaky schopny programator ktery by dal priklad jak na to? diky moc vsem
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.12.2006 12:56 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: retezec oddeleny znaky -> pole / Jazyk C
Odpovědět | | Sbalit | Link | Blokovat | Admin

strtok_r()

Ale napsat si vlastní je opravdu práce na pět minut.

1.12.2006 13:01 NickRabit
Rozbalit Rozbalit vše Re: retezec oddeleny znaky -> pole / Jazyk C
no pro me v cecku ne, nejak jsem se tam zamotal do ukazatelu, v pascalu jsem to delal nejmin 100x. me neslo ani vzit znak a pridat ho do pomocneho retezce. Snazil jsem se o to pomoci strcat() ale nejak me to porad padalo. poradite prosim jak na to? dik a nezlopte se za hloupy dotaz
1.12.2006 13:18 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: retezec oddeleny znaky -> pole / Jazyk C
char *src="neco1#neco2#neco3"
char *arr[10];
int i=0;

pole[i]=src;

for (char *c=src,i;*c;c++)
{
   if (*c=='#' && *c)
   {
      *c='\0';
      arr[++i]=++c;
   }
}
1.12.2006 13:22 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: retezec oddeleny znaky -> pole / Jazyk C
if (*c=='#' && *(c+1))
1.12.2006 13:31 NickRabit
Rozbalit Rozbalit vše Re: retezec oddeleny znaky -> pole / Jazyk C
dik, tak jsem tam mel spatne ukazatele. Diky uz to bezi, mas to u me
1.12.2006 13:23 jekub | skóre: 9 | blog: noblog
Rozbalit Rozbalit vše Re: retezec oddeleny znaky -> pole / Jazyk C
Odpovědět | | Sbalit | Link | Blokovat | Admin
void parse(char *str) {
   static const char seps[] = "#";
   char *p = strtok(str, seps);
   while (p) {
      printf("%s\n", p);
      p = strtok(NULL, seps);
   }
}
1.12.2006 13:33 NickRabit
Rozbalit Rozbalit vše Re: retezec oddeleny znaky -> pole / Jazyk C
diky moc

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.