a qst punto la domanda nasce spontanea.....ho qst programma....come mai quando vado a fare le strncopy mi copia i caratteri che voglio e poi mi assegna valori arbitrari???
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[8], sede[4], prodotto[8], caratteristiche[4];
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);
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;
}