E' chiaro che il problema sta nel fatto che non hai inserito i terminatori, se hai una stringa che dovrebbe essere: "12345678" e te la stampa più lunga, è perchè la printf non sa quando fermarsi a stampare.Se c' era il terminatore come nono elemento era impossibile che ti stampava una stringa più lunga.
Prova questo:
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"); }

Rispondi quotando