ja tam bym po prostu whilem dwa razy to przelecial ;p
kod BEZ sprawdzania bledow
const char *parse_me_oh_parse_me = "ala,ma,kota,kot,jest,ladny,czarny,i,dumny";
char **
funkcja_parsujaca( const char* a )
{
const char *parser_pointer = a;
int elementow = 0, wielkosc_max = 0, i,j;
char **tablica;
/* pierwszy przelot */
i = 0;
while( *parser_pointer )
{
if( *parser_pointer == ',' )
{
if( wielkosc_max < i ) wielkosc_max = i;
i = 0;
elementow++;
} else i++;
parser_pointer++;
}
elementow ++;
wielkosc_max++;
/* alokacja */
*tablica = (char*)malloc( elementow * (wielkosc_max) );
for( i = 1; i < elementow; i++ ) { tablica[i] = &tablica[ i * wielkosc_max ];
/* parsing wlasciwy */
i = 0; j = 0;
parser_pointer = a;
while( *parser_pointer )
{
if( *parser_pointer == ',' )
{
i++;
j=0;
} else tablica[i][j] = *parser_pointer;
parser_pointer++;
return tablica;
}
}
ofc potem to wymaga free..
i uzywaja strtok by mozna to krocej zapisac.. ale tak bedzie szybciej
pokoj, Gynv