Buonasera, devo svolgere un semplice esercizio di acquisizione e visualizzazione di stringhe utilizzando printf e scanf, ma non riesco a farlo funzionare. Potreste gentilmente indicarmi cosa ho sbagliato nel mio codice? Premetto di essere alle prime armi con la programmazione in generale.
Vi ringrazio anticipatamente per eventuali risposte.
codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define D 21
int main()
{
int N, i;
char stringa[N][D];
const char* s;
printf("Inserisci numero stringhe: ");
scanf("%d", &N);
while ((N<1) || (N>99))
{printf("\nNumero non consentito! Reinserire numero stringhe: ");
scanf ("%d", &N);}
printf("\n\n");
for(i=0;i<N;i++)
{printf("Inserisci stringa %d: ", i+1);
scanf("%s", s);
if (strlen(s)==0)
{ printf("Vuota - ripeti\n");
i--;}
else
{if(strlen(s)>D)
{printf("Troppo lunga! Max %d caratteri\n", D-1) ;
i--;}
else
{strcpy(stringa[i], s);}}
}
printf("\n\nLe stringhe inserite sono: \n");
for(i=0;i<N;i++)
{printf("Stringa %d = %s\n", i+1, stringa[i]);}
return 0;
}