@Ivan-94:
Kod:
char** explode( const char delim, char* src )
{
char * start = src;
char * ptr = src;
char ** tab;
int i = 0, pos = 0, len = 0;
int items = 0;
while( *src )
{
if( *src == delim )
items++;
src++;
}
if( !items )
return NULL;
items++;
src = start;
tab = new char * [items];
while( *ptr && i < items )
{
if( *src == delim || *src == 0 )
{
len = 0;
ptr = start;
while( ptr < src )
{
len++;
ptr++;
}
tab[ i ] = new char [len + 1];
pos = 0;
while( start < ptr )
{
tab[ i ][pos] = *start;
start++;
pos++;
}
tab[ i ][pos] = 0;
start = ptr + 1;
i++;
}
src++;
}
tab[ i ]= NULL;
return tab;
}
Funkcija nije moje delo - nasao sam je negde na internetu pre koju godinu.
Koristis ovako:
Kod:
char ** Bla = explode( ':', "1.1.1.1:28960" );
Bla[ 0 ] // Pokazivac na prvi niz karaktera
Bla[ 1 ] // Pokazivac na drugi niz
// Itd...
Mala funkcija koju sam napravio da ti pomogne da izbrojis na koliko delova je tekst podeljen:
Kod:
int count( char ** tabsrc )
{
int i = 0;
while( tabsrc[ i ] != NULL )
i++;
return i;
}
Ne zaboravi da posle koriscenja oslobodis memoriju:
Kod:
int c = count( Bla );
for( int i = 0; i < c; i++ )
delete [ ] Bla[ i ];
delete [ ] Bla;