Passaggio da array a puntatori Esercizio.

di il
4 risposte

Passaggio da array a puntatori Esercizio.

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;
}

4 Risposte

  • Re: Passaggio da array a puntatori Esercizio.

    Per la teoria dei puntatori basta un normale libro sul linguaggio C.

    Ad esempio, una funzione come

    int func(char str1[], char str2[]) {

    diventa

    int func(char *str1, char *str2) {
  • Re: Passaggio da array a puntatori Esercizio.

    Si e fin qui ci sono mi spiegate l'esercizio come va svolto e cercare di trovare qualche appunto su internet e passaggio da array a puntatori ?
  • Re: Passaggio da array a puntatori Esercizio.

    Beh, ma hai fatto qualche ricerca ? Esistono migliaia di riposte su puntatori e array in C su google ...

    L'esercizio va svolto, appunto come ti mostravo nella prima riga, eliminando i [] e usando i puntatori.

    Comincia a scrivere le righe ...
  • Re: Passaggio da array a puntatori Esercizio.

    Devo riscriverlo così ?

    #include <stdio.h>

    int func (char *str1, char *str2) {
    for( ; *str1 != '\0'; *str++) {
    for( ; *Str2 != '\0' && *str1 == *str2; *str1++,*str2++);
    if(str2>0 && *str2 == '\0')
    }
    return -1;
    }

    int main(void) {

    ...

    }
Devi accedere o registrarti per scrivere nel forum
4 risposte