Newsgroup: it.comp.lang.c
Titolo: Scanf %s Vettori

Ciao a tutti, quando si esegue la scanf %s di una intera frase e si
indirizza il tutto in un  vettore, i dati come sono disposti all'interno di
questo? (per es scanf ("%s",vet)
Grazie 1000 per la info
Enrico S.
--
Webmaster della Pagina NON Ufficiale del SonyCRX100
SonyCRX120,  SonyCRX140E/S, SonyCRX100EX, HP8100
HP8200, HP9100 & HP9200
http://www.freeweb.org/computer/SonyCRX100/

questo? (per es scanf ("%s",vet)
Nell'ordine in cui vengono scritti.
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
-----------------------------------------------------
"There is nothing better for understanding a kangaroo
 than seeing it jump." [D.Grune, C.J.H. Jacobs]


Quindi se io scrivo per esempio una frase del tipo
oggi fa bello
poi premo invio, nella posizione vet[0] ci sarà "oggi", nella posizione
vet[1] "fa" e in vet[2] "bello"? Non bisognerebbe fare un ciclo (ad esempio
for) che mi spedisce ogni singolo elemento in una cella? Ad esempio, se lo
scanf è su interi, vale la stessa regola?
Grazie 1000 per il tuo aiuto e la tua disponibilità
Enrico S.

 vet[1] "fa" e in vet[2] "bello"?
Sbagliato:vet[0] = 'o',vet[1]='g',vet[2] = 'g'
vet e' un array di caratteri, quindi ogni elemento dell ' array e' un carattere
non una stringa......
Ivan Molella

scanf è su interi, vale la stessa regola?
scanf() legge un carattere alla volta e lo memorizza nel vettore che
gli viene passato.
Se vuoi leggere insiemi di oggetti, usa un ciclo for :
#include <stdio.h>
int main()
{
    char x[10][20], i ;
    for ( i = 0 ; i < 10 ; i++ )
        scanf( "%s", x[i] ) ;
    for ( i = 0 ; i < 10 ; i++ )
        printf( "%s\n", x[i] ) ;
    return 0 ;


Ciao, scusa se ti disturbo ancora...ma potresti spiegarmi il passaggio che
esegue questo programma con i dati nell'array (il programma è perfettamente
funzionante...)
#include <conio.h>
#include <stdio.h>
#include <string.h>
#define uscita "esci"
int main()
{int lungst, somma, righe, parole;
float media;
char vet[1200], invio;
parole=righe=media=somma=0;
clrscr();
printf("Inserisci del testo. Per terminare inserisci \"esci\" su una nuova
riga.\n\n");
do
 {do
       {scanf("%s",&vet);
     lungst=strlen(vet);
     somma=somma+lungst;
     parole++;
     scanf("%c",&invio);}
 while (invio!=10);
 righe++;}
while (strcmp (vet,uscita));
somma-=4;
parole--;
media = (float) somma/parole;
righe--;
textcolor (12);
cprintf("\n\nPAROLE:%d  RIGHE:%d  MEDIA:%f
SPAZI:%d\n\n",parole,righe,media,parole-righe);
return(0);}
Grazie 1000!
Enrico

       {scanf("%s",&vet);
vet e' un vettore di caratteri che decade nel puntatore al suo primo
elemento, per cui andrebbe scritto 
scanf( "%s", vet ) ;



Questo glielo avevo già detto io ma l'ha presa male...forse non ha capito
che il mio tono non era di sufficienza!! Mah!!


 wrote:
ES> Ciao a tutti, quando si esegue la scanf %s di una intera frase e si
ES> indirizza il tutto in un  vettore, i dati come sono disposti all'interno di
ES> questo? (per es scanf ("%s",vet)
ES> Grazie 1000 per la info
senza usare cicli puoi mettere tutto in un array, spazi compresi.
O lo fai tramite gets() (e hiudi un occhio sui warnings) oppure semplicemente
con 
char linea[80];
scanf("%[!-~ ]",linea);
che ho ricavato leggendo qua e la' sull'uso di scanf.
In questo modo gli indichi che quello che stai leggendo contiene anche
il carattere spazio, e memorizza tutto nell'array linea 
ciao
fritz

Forse dovresti usare le faccine...sono agli inizi...comunque ora che è tutto
spiegato chiedo scusa.
