Ciao ragazzi gentilissimi, vi ringrazio in anticipo, ma ho difficoltà con questo esercizio nel passaggio dagli array ai puntatori. Mi spiegate come funziona e dove posso trovare qualcosa di teorico a riguardo ?
L'esercizio è il seguente:
Riscrivere la seguente funzione usando l’aritmetica sui puntatori invece dell’indicizzazione
dell’array (eliminare le variabili i,j,k e tutti gli usi dell’operatore []). Cosa la funzione e cosa
viene stampato quando viene eseguito il main?
#include <stdio.h>
int func(char str1[], char str2[]) {
int i,j,k;
for (i=0; str1!=’\0’; i++) {
for (j=i,k=0; str2[k] != ’\0’ && str1[j]==str2[k]; j++,k++)
;
i f (k>0 && str2[k] == ’\0’)
return k;
}
return -1;
}
int main(void) {
char a[]="programma";
char b[]="gra";
char c[]="gram";
char d[]="pram";
char e[]="prom";
char f[]="pro";
3printf("Valore della chiamata: %d\n", func(a,b));
printf("Valore della chiamata: %d\n", func(a,c));
printf("Valore della chiamata: %d\n", func(a,d));
printf("Valore della chiamata: %d\n", func(a,e));
printf("Valore della chiamata: %d\n", func(a,f));
return 0;
}