Aritmetica dei puntatori

di il
2 risposte

Aritmetica dei puntatori

#include  <studio.h>

Int func(char str1 [ ], char str2 [ ] ) { 
int i,j,k;
for (i=0;str1 [i]!='\0';i++){
for (j=i,k=0; str2 [k] !='\0' && str1 [j]==str2 [k];j++,k++);
if (k>0 && str2 [k]=='\0')
return k;}
return -1;} 

Non riesco a modificare questo codice con l aritmetica dei puntatori qualcuno può darmi un aiuto

2 Risposte

  • Re: Aritmetica dei puntatori

    Come prima cosa indenta decentemente.
    come seconda cosa, quando scrivi array puoi scambiarlo con *(array+i), tant'è che array è solo una "scrittura da umano", ciò che fa realmente la macchina si vede proprio con *(array+i) (occhio alle parentesi! sono obbligatorie): prende il puntatore alla prima cella dell'array e lo aumenta di i: con quest'operazione ti viene restituito l'i-esimo elemento.
    puoi anche fare ++(*array), ma dato che l'operatore ++ incrementa e assegna quando andrai ad utilizzare *array questo non punterà più alla prima cella dell'array, ma alla seconda!
  • Re: Aritmetica dei puntatori

    Di fronte a determinati dubbi alle volte è meglio affrontare un esercizio più semplice. Ad esempio, prova a scrivere una funzione che riceve una stringa e ne ritorna la lunghezza (come la strlen() per intenderci!): prova a scriverla nei due modi
Devi accedere o registrarti per scrivere nel forum
2 risposte