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; }

Rispondi quotando