[C] stampare un array di caratteri

hee136
In C posso stampare tutta una stringa in questo modo?

char stringa[10];
<scrittura su stringa>
printf("%s",stringa);


Immagino di no perchè così mi stampa solo il carattere iniziale.

Risposte
vict85
In teoria il modo per scriverlo è corretto. Se ti dà solo l'elemento iniziale vuol dire che hai sbagliato qualcosa prima.

hee136
int fd = socket (PF_INET, SOCK_RAW, IPPROTO_ICMP);
char buffer[8192];

printf("Sto per iniziare a leggere\n");

//Alternativa 1: stampa carattere per carattere
while (read (fd, buffer, 8192) > 0) {
int i;
for(i=0;i<8192;i++) printf ("Caught packet: %c\n",buffer[i]);
}

//Alternativa 2: stampa tutto insieme
while (read (fd, buffer, 8192) > 0) {
printf ("Caught packet: %c\n",buffer);
}


Nei due casi la parte in cui la stringa viene modificata non cambia.
Cambia solamente la parte in cui viene stampata.
Nel primo stampa tutti i caratteri.
Nel secondo solo il primo.

vict85
Perché hai scritto %c e non %s... ;) sopra l'avevi messo giusto.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.