Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    dubbio input vettore di stringhe in C

    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?

  2. #2
    ciao,
    scusa ma sono un pò di fretta, non ho provato a farlo ma invece di:

    for (i=0;i<n;i++) {
    // ad ogni ciclo aquisisco una stringa da input da memorizzare nell'array
    scanf("%s",s);
    }
    prova con:

    codice:
    for (i=0;i<n;i++)
    {
    // ad ogni ciclo aquisisco una stringa da input da memorizzare nell'array
    
    scanf("%s",s[i]);
    
    }
    s è un array di array di caratteri

  3. #3

    Re: dubbio input vettore di stringhe in C

    io ho provato cosi ma non funziona:
    Prima di tutto devi allocare lo spazio per il numero di stringhe da acquisire:

    #define STRING_SIZE 100
    char s[10][STRING_SIZE];

    Poi devi inizializzare n (con un valore <=10)

    Per acquisire la stringa giusta devi indicare la stringa corrente:

    scanf("%s", s[i]);

    E il prototipo della printf_string deve essere:

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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.