Scopo di questa esercitazione è di familiarizzarsi con i puntatori, array e stringhe.
Al solito, si suggerisce di creare una directory apposita per i
files relativi a questa esercitazione.
I prototipi delle function di libreria per
operare sulle strighe risiedono nel file di header string.h.Per
utilizzare malloc invece è necessario il file di
header stdlib.h.
tmp = a[i];
a[i] = a[i+1];
a[i+1] = tmp;
Successivamente trasformare la parte di ordinamento in una function.
#include <stdio.h>Considerare l' istruzione
int main(void){
float a[]= { 1.30, 2.30, 3.30, 14.60, -3.6}, *ip, *iq;
ip = &a[0];
iq = ip;
printf("valore di a[0]: %f,indirizzo di a[0]: %p \n", a[0], &a[0]);
return 0;
}
ip = &a[4];Cosa rappresenta ip[-2] ? Verificare facendone scrivere il valore.
Cosa scriverà il seguente programma ?
#include <stdio.h>
int main(void){
int i;
char s1[] = "Immetti un numero";
for(i=0;i< sizeof(s1)-1; i++)
printf("%c \n",s1[i]);
printf("%s \n",s1);
return 0;
}
Modificarlo in modo da introdurre una seconda stringa di lunghezza 40 e copiarvi sopra la stringa s1.
E come funziona la seguente versione alternativa del programma ? Perché l'output di questo programma è diverso da quello del precedente ?#include <stdio.h>
int main(void){
char *p = "Immetti un numero";
while(*p)
printf("%c \n",*p++);
printf("%s \n",p);
return 0;
}
verificare ed interpretare il risultato di
char s1[20]="Pippo";
char s2[30];
sizeof(s1)E se le istruzioni precedenti fossero in una function ?
sizeof(s2)
strlen(s1)
strlen(s2)
Copiare quindi la stringa s1 su s2 mediante la function di libreria strcpy. (Utilizzarla come: strcpy(s2,s1); Occorre anche includere il file di sistema string.h. Per maggiori informazioni: man strcpy) Ristampare il risultato di
strlen(s2)Infine dichiarare un puntatore a caratteri, pc, allocare memoria con l' istruzione
pc = malloc(...);Dove al posto dei puntini, nella chiamata a malloc, va data la lunghezza della stringa che vogliamo utilizzare (la possiamo ricavare dai dati ottenuti fin qui). Infine copiare s1 nell' area riservata a pc e visualizzare la stringa mediante pc.
#include <stdio.h>
int main(void)
{
char *p="questo e' un puntatore",a[]="questo e' un array";
p[0]='Q';
a[0]='Q';
printf("%s \n",p);
printf("%s \n",a);
p=a;
printf("%s \n",p);
return 0;
}