ok, grazie....così sembra che la prima parte vada......
ma poi il resto si blocca........

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

int altriCodici (char codice[], char sede[], char prodotto[], char caratteristiche[]);
int numero (char alfa);


int main ()
{
         char stringa[24], codice[9], sede[5], prodotto[9], caratteristiche[5];

         printf ("\n Inserisci codice: ");
         scanf ("%s", stringa);

         strncpy (codice, stringa, 8);
         strncpy (prodotto, &stringa[8], 8);
         strncpy (sede, &stringa[16], 4);
         strncpy (caratteristiche, &stringa[20], 4);
         
         codice[8]=0;
         prodotto[8]=0;
         sede[4]=0;
         caratteristiche[4]=0;

         printf ("\n codice: %s", codice);
         printf ("\n prodotto: %s", prodotto);
         printf ("\n sede: %s", sede);
         printf ("\n caratt: %s", caratteristiche);

         printf ("\n risulatato: %d", altriCodici(codice, sede, prodotto, caratteristiche));

         printf ("\n\n\n---\n");
         system ("pause");
}



int altriCodici (char codice[], char sede[], char prodotto[], char caratteristiche[])
{
    int lunghezza, i;
    
    i=strlen(sede);
    while (numero(codice[i]))
          ++i;
          
    strncpy (prodotto, &codice[strlen(sede)], i-strlen(sede));
    
    
    if(strlen(prodotto)>8)
          return -1;
    
    lunghezza=strlen(codice)-(strlen(sede)+strlen(prodotto));
    
    if (lunghezza == 0)
          return 0;
    
    strncpy (caratteristiche,  &codice[i], lunghezza);
    
    if (strlen(caratteristiche) > 8)
          return -2;
    else
          return 1;
}



int numero (char alfa)
{
    if ((alfa >= '0') && (alfa <= '9'))
       return 1;
    else
       return 0;
}