La forma más eficiente, sobre todo si la cadena está separada por comas, es utilizar un objeto TStringList. de la siguiente forma:
Código:
TStringList *SL = new TStringList;
SL->CommaText = tu_cadena;
int cantidad = SL->Count; // La cantidad de componentes
for (int fila=0; fila < cantidad; fila++) // Recorrer la lista de componentes
{
HacerAlgo (SL->Strings[fila]); // Hacer algo con cada componentes (1, 2, 3, ...)
}
delete SL;
Este truco se basa en la habilidad del StringList de descomponer las cadenas separadas por coma en sus partes, y colocar cada una de ellas en una fila de la lista.
Espero te sirva. Es uno de mis trucos favoritos !