ciao a tutti, nonostante i mattoni di manuali in C non sono ancora riuscito a capire bene come acquisire in input n stringhe di array.
Vi riporto il codice di una array di stringhe definito:

  • #include<stdio.h>
    #include<string.h>
    void printf_string(char *p[],int n);

    int main(){

    char *s[5]={"uno","due","tre","quattro","cinque"};

    print_string(s,5);

    return 0;
    }


    void printf_string(char *p[],int n){

    int i;

    for (i=0;i<n;i++)
    {
    printf(" %s ",p[i]);

    }



output é: "uno due tre quattro cinque ".
fin qui ci sono ma cosa bisognerebbe fare se il vettore di stringhe deve essere aquisito in input?
io ho provato cosi ma non funziona:

  • #include<stdio.h>
    #include<string.h>

    void printf_string(char *p[],int n);

    int main(){

    char s[100],n,i;
    char *str; //forze
    for (i=0;i<n;i++)
    {
    // ad ogni ciclo aquisisco una stringa da input da memorizzare nell'array

    scanf("%s",s);

    }
    print_string(s,n);

    return 0;
    }


    void printf_string(char *p[],int n){

    int i;

    for (i=0;i<n;i++)
    {
    printf(" %s ",p[i]);

    }
    }







la funzione mi stampa i l'ultima stringa acquisita in input.

dove sbaglio?